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 并不要求你为自 ...
随机推荐
- lua_VC6环境
1. 下载得到 lua-5.1.4.tar.gz,解压得到 文件夹"lua-5.1.4" 2. 视频[02:00] 将 lua-5.1.4/etc/luavs.bat 复制到 lu ...
- c++ primer plus 第五章 课后题答案
#include <iostream> using namespace std; int main() { ; cout << "Please enter two n ...
- jq的attr()与prop()之间区别
1.attr() 一直存在,prop() 仅存在于 jq-1.6 及其之后 2.新版本jq使用细节: 2.1 自定义添加至dom节点的属性,用attr获取 2.2 表单类checked.selecte ...
- Codeforces 766C - Mahmoud and a Message
C. Mahmoud and a Message time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- C#中一个简单的匹配16进制颜色的正则测试
using System; using System.Text.RegularExpressions; namespace Test { class Program { //匹配16进制颜色代码的正则 ...
- [don't have permission to access]的一个经典原因
那就是 ..... SELinux ...... 几年前好像经历过这个恶梦.现在又经历了一回. 从Windows上传了一个目录,做一个apache的别名Alias, 结果总是没有权限. chmod 7 ...
- mysql--------四种索引类型
一.索引的类型 mysql索引的四种类型:主键索引.唯一索引.普通索引和全文索引.通过给字段添加索引可以提高数据的读取速度,提高项目的并发能力和抗压能力.索引优化时mysql中的一种优化方式.索引的作 ...
- php fpm深度解析
摘自:https://www.cnblogs.com/wanghetao/p/3934350.html 当我们在谈到cgi的时候,我们在讨论什么 最早的Web服务器简单地响应浏览器发来的HTTP请求, ...
- hdu6394Tree lct
树上弹飞绵羊,现场树分块没写出来= = 先预处理倍增,新建一个n+1节点,能弹到就建一条边,然后每操作2就cut,然后link,1的答案就是x到n+1的距离, //#pragma GCC optimi ...
- POJ-1160 Post Office (DP+四边形不等式优化)
题目大意:有v个村庄成直线排列,要建设p个邮局,为了使每一个村庄到离它最近的邮局的距离之和最小,应该怎样分配邮局的建设,输出最小距离和. 题目分析:定义状态dp(i,j)表示建设 i 个邮局最远覆盖到 ...