SWIFT中用Switch case 类类型
有时觉得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 类类型的更多相关文章
- java switch case 枚举类型的反编译结果
package com.example.demo; import java.io.PrintStream; // Referenced classes of package com.example ...
- swift计算 switch case
var year = var month = var day = ; let daysOfFeb = year % == && year% != || year % == ?: var ...
- js switch case 判断的是绝对相对===,值和类型都要相等
js switch case 判断的是绝对相对===,值和类型都要相等
- 5.Swift枚举|结构体|类|属性|方法|下标脚本|继承
1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum Celebrity{ case DongXie,XiDu,Nandi,BeiGai } // 从左 ...
- Swift枚举|结构体|类|属性|方法|下标脚本|继承
1. 枚举: ->在Swift中依然适用整数来标示枚举值,需搭配case关键字 enum Celebrity{ case DongXie,XiDu,Nandi,BeiGai } // 从左 ...
- 深入理解Java的switch...case...语句
switch...case...中条件表达式的演进 最早时,只支持int.char.byte.short这样的整型的基本类型或对应的包装类型Integer.Character.Byte.Short常量 ...
- swift学习笔记3——类、结构体、枚举
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- 窥探Swift之别样的枚举类型
想必写过程序的童鞋对枚举类型并不陌生吧,使用枚举类型的好处是多多的,在这儿就不做过多的赘述了.Fundation框架和UIKit中的枚举更是数不胜数,枚举可以使你的代码更易阅读并且可以提高可维护性.在 ...
- Swift语法学习之 类和结构体
类和结构体 本页包括内容: 类和结构体对照 结构体和枚举是值类型 类是引用类型 类和结构体的选择 集合(collection)类型的赋值与复制行为 与其他编程语言所不同的是,Swift 并不要求你为自 ...
随机推荐
- Redis 5种数据结构及其使用场景举例--STRING
String 数据结构是简单的 key-value 类型,value 不仅可以是 String,也可以是数字(当数字类型用 Long 可以表示的时候encoding 就是整型,其他都存储在 sdshd ...
- python字典按照value进行排序.bak
先说几个解决的方法,具体的有时间再细说 d = {'a':1,'b':4,'c':2} 字典是这个,然后要对字典按照value进行排序 方法一: sorted(d.items(),key = lamb ...
- Qt_OpenGL_教程
1. 中文版: Qt OpenGL教程 http://blog.csdn.net/myths_0/article/details/24431597 http://qiliang.net/old/neh ...
- 《剑指offer》第三十一题(栈的压入、弹出序列)
// 面试题31:栈的压入.弹出序列 // 题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是 // 否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1.2.3.4. / ...
- 《剑指offer》第二十三题(链表中环的入口结点)
// 面试题23:链表中环的入口结点 // 题目:一个链表中包含环,如何找出环的入口结点?例如,在图3.8的链表中, // 环的入口结点是结点3. #include <iostream> ...
- 禁用表单元素 && 禁止选中
一.禁用表单元素 1.dom设置属性 disabled="disabled" || disabled=true 2.css样式(高版本浏览器) pointer-events:non ...
- dom 绑定数据
一.绑定/修改 .jQuery修改属性值,都是在内存中进行的,并不会修改 DOM 1. 对象绑定 $(selector).data(name) $("#form").da ...
- php 7.2 安装 mcrypt 扩展: mcrypt 扩展从 php 7.1.0 开始废弃;自 php 7.2.0 起,会移到 pecl
升级 php 7.2 后,使用微信提供的加解密代码时,提示 call to undefined function mcrypt_module_open() :大脑疯狂运转1秒钟后,得出结论:php 7 ...
- 20170324xlVBA最简单分类计数
Sub NextSeven_CodeFrame() Application.ScreenUpdating = False Application.DisplayAlerts = False Appli ...
- Vue.js教程--基础(实例 模版语法template computed, watch v-if, v-show v-for, 一个组件的v-for.)
官网:https://cn.vuejs.org/v2/guide/index.html Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统. 视频教程:https: ...