有时觉得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. Linux进程内存布局(翻译)

    Anatomy of a Program in Memory 在一个多任务OS中,每个进程都运行在它自己的内存沙箱中.这个沙箱就是虚拟地址空间,在32位下就是一块容量为4GB的内存地址.内核将这些虚拟 ...

  2. sqlserver 存入DB中的中文乱码

    在war包中的appliation.properties中,配置的数据库连接做了修改,也不知道当初为什么这么改 导致存入DB中的中文是??? testaaa.jdbc.type=mssqltestaa ...

  3. Thunder团队Final版爱阅app发布视频

    视频链接:https://www.bilibili.com/video/av17008792/ 视频简介:首先出现的是我们团队的logo,接着是Final版爱阅app的功能展示,紧接着是我们团队的开发 ...

  4. input聚焦后光标移动至末尾

    var valSrc=obj.val();obj.val(“”).focus().val(valSrc);

  5. Java 常用对象-String类

    2017-11-02 20:02:06 String:代表字符串.Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现. 字符串是常量:它们的值在创建之后不能 ...

  6. springboot 解决 The bean 'userRepository', defined in null, could not be registered. A bean with that name has already been defined in file XXX and overriding is disabled.

    1.springboot 启动时报错: 2019-02-20 14:59:58.226 INFO 10092 --- [ main] c.f.s.SpringbootssmApplication : ...

  7. 关于一致性hash详细

    一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简 单哈 ...

  8. 当保存在Session中的对象,取出后,在外部发生改变时会怎样

    return_reason_model model = new return_reason_model(); model.F_RetunrnReason = "; HttpContext.S ...

  9. pandas的concat函数和append方法

    pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,keys=None, levels=None, nam ...

  10. Android 7.0正式版工厂镜像下载

    Android 7.0正式版工厂镜像下载 从3月份上线首个开发者预览版(Developer Preview)之后,经过近6个月时间的打磨,谷歌今天开始向Nexus设备推送Android 7.0 Nou ...