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 并不要求你为自 ...
随机推荐
- UVa 11624 大火蔓延的迷宫
https://vjudge.net/problem/UVA-11624 题意:有一个大火蔓延的迷宫,迷宫中有障碍格,而所有着火的格子都会往四周蔓延.求出到达边界格子时的最短时间. 思路:复杂了一点的 ...
- MVC ---- 理解学习Func用法
//Func用法 public static class FuncDemo{ public static void TestFunc(){ //数据源 List<User> usList ...
- iBatis的基本配置+CRUD操作
首先解释一下CRUD的含义:CRUD是指在做计算处理时的增加(Create).查询(Retrieve)(重新得到数据).更新(Update)和删除(Delete) 基本的数据库操作 创建工程iBati ...
- VcCallC#_02
1.VC代码:(vs2013运行正常) // ConsoleApplication_CallCS.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h&quo ...
- logback的使用和logback.xml详解[转]
一.logback的介绍 Logback是由log4j创始人设计的另一个开源日志组件,官方网站: http://logback.qos.ch.它当前分为下面下个模块: logback-core:其它两 ...
- Caffe 学习系列
学习列表: Google protocol buffer在windows下的编译 caffe windows 学习第一步:编译和安装(vs2012+win 64) caffe windows学习:第一 ...
- openshift harp.js heroku react-router 4
https://segmentfault.com/a/1190000000355181 http://harpjs.com/ https://www.jianshu.com/p/7bc34e56fa3 ...
- [.NET开发] C#编程调用Cards.dll实现图形化发牌功能示例
本文实例讲述了C#编程调用Cards.dll实现图形化发牌功能.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; usi ...
- 16S 基础知识、分析工具和分析流程详解
工作中有个真理:如果你连自己所做的工作的来龙去脉都讲不清楚,那你是绝对不可能把这份工作做好的. 这适用于任何行业.如果你支支吾吾,讲不清楚,那么说难听点,你在混日子,没有静下心来工作. 检验标准:随时 ...
- 开发shellcode的艺术
专业术语 ShellCode:实际是一段代码(也可以是填充数据) exploit:攻击通过ShellCode等方法攻击漏洞 栈帧移位与jmp esp 一般情况下,ESP寄存器中的地址总是指向系统栈且不 ...