有时觉得SWIFT的语法真的强大而又变态,不说了,直接上代码瞅瞅:

首先先定义一个交通工具的父类

class Vehicle{

var wheels:Int!

var speed:Double!

init(wheels:Int,speed:Double){

self.speed = speed

self.wheels = wheels

}

func run(){

println("The \(self.wheels) wheels is running as \(self.speed) speed")

}

deinit{//类似于其它编程语言的析构函数,退出时释放对象

self.wheels = nil

self.speed = nil

}

}

创建一个自行车类

class Bike : Vehicle{

init(){

super.init(wheels: 2, speed: 10)

}

}

创建一个小车类及一个加油的方法

class Car : Vehicle{

init(){

super.init(wheels: 4, speed: 100.5)

}

func addOil(){

println("The Car is adding oil")

}

}

创建一个货车类及添加货物的方法

class Truck : Vehicle{

init(){

super.init(wheels: 4, speed:80.5)

}

func addCargo(){

println("The Car is adding cargo")

}

}

var myvehicle:Vehicle = Car()

判断如果是小车类型的

if (myvehicle is Car){

println("This is a car")

}

switch myvehicle{

case let bike as Bike: //此时,如果myvehicle是Bike对象那边将myvehicle赋值给bike变量。下面的代码也类似

bike.run()

case let car as Car where car.speed == 100.5: //如果是Car并且速度是100.5,这语法真的很变态

car.addOil() //调用自有方法

car.run()

case let truck as Truck:

truck.addCargo()//调用自有方法

default:

println("unknow")

}

SWIFT中用Switch case 类类型的更多相关文章

  1. java switch case 枚举类型的反编译结果

     package com.example.demo; import java.io.PrintStream;  // Referenced classes of package com.example ...

  2. swift计算 switch case

    var year = var month = var day = ; let daysOfFeb = year % == && year% != || year % == ?: var ...

  3. js switch case 判断的是绝对相对===,值和类型都要相等

    js switch case 判断的是绝对相对===,值和类型都要相等

  4. 5.Swift枚举|结构体|类|属性|方法|下标脚本|继承

    1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum  Celebrity{  case DongXie,XiDu,Nandi,BeiGai }  // 从左 ...

  5. Swift枚举|结构体|类|属性|方法|下标脚本|继承

    1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum  Celebrity{  case DongXie,XiDu,Nandi,BeiGai }  // 从左 ...

  6. 深入理解Java的switch...case...语句

    switch...case...中条件表达式的演进 最早时,只支持int.char.byte.short这样的整型的基本类型或对应的包装类型Integer.Character.Byte.Short常量 ...

  7. swift学习笔记3——类、结构体、枚举

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  8. 窥探Swift之别样的枚举类型

    想必写过程序的童鞋对枚举类型并不陌生吧,使用枚举类型的好处是多多的,在这儿就不做过多的赘述了.Fundation框架和UIKit中的枚举更是数不胜数,枚举可以使你的代码更易阅读并且可以提高可维护性.在 ...

  9. Swift语法学习之 类和结构体

    类和结构体 本页包括内容: 类和结构体对照 结构体和枚举是值类型 类是引用类型 类和结构体的选择 集合(collection)类型的赋值与复制行为 与其他编程语言所不同的是,Swift 并不要求你为自 ...

随机推荐

  1. 机器学习-数据可视化神器matplotlib学习之路(五)

    这次准备做一下pandas在画图中的应用,要做数据分析的话这个更为实用,本次要用到的数据是pthon机器学习库sklearn中一组叫iris花的数据,里面组要有4个特征,分别是萼片长度.萼片宽度.花瓣 ...

  2. hihocoder 九十八周 搜索一 24点

    题目1 : 搜索一·24点 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 周末,小Hi和小Ho都在家待着. 在收拾完房间时,小Ho偶然发现了一副扑克,于是两人考虑用这副 ...

  3. TDD、BDD、DDD

    TDDTest-Driven DevelopmentTest-Driven Development (TDD) is a software development technique where au ...

  4. mysql处理时间戳

    select name,telphone,FROM_UNIXTIME(add_time,'%Y-%m-%d %H:%i') as add_time from tf_apply_join order b ...

  5. [原][OSG][osgBullet][osgworks][bullet]编译osgBullet尝试物理引擎

    相关网址: 类似文章:http://blog.csdn.net/lh1162810317/article/details/17475297 osgBullet官网:http://osgbullet.v ...

  6. m_Orchestrate learning system---三十二、数据库字段判断为空时容易出现问题,如何从根本上解决这个问题

    m_Orchestrate learning system---三十二.数据库字段判断为空时容易出现问题,如何从根本上解决这个问题 一.总结 一句话总结:字段禁止为空,设置默认值0即可 禁止 空 默认 ...

  7. 雷林鹏分享:C# 异常处理

    C# 异常处理 异常是在程序执行期间出现的问题.C# 中的异常是对程序运行时出现的特殊情况的一种响应,比如尝试除以零. 异常提供了一种把程序控制权从某个部分转移到另一个部分的方式.C# 异常处理时建立 ...

  8. 20170728xlVba还是这个混蛋

    Public Sub Main22() If Now() >= #1/1/2018# Then Exit Sub Dim strText As String Dim Reg As Object, ...

  9. axios构建缓存池存储基础数据

    项目中经常出现需要多次使用的后端数据,通常的做法是通过变量缓存数据,或者通过类似vuex的东西来进行缓存,但是麻烦在于很可能需要判断一大堆的条件,或者说如果有权限控制的时候数据能否读取也是很麻烦的事情 ...

  10. HDU-1226 超级密码 (BFS+剪枝)

    Problem Description Ignatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示信息:密 码是一个C进 ...