swift 新特性
2015-08-30 16:07
429 查看
switch支持任意类型的数据以及各种比较操作——不仅仅是整数以及测试相等。
运行switch中匹配到的子句之后,程序会退出switch语句,并不会继续向下运行,所以不需要在每个子句结尾写break。
子类的定义方法是在它们的类名后面加上父类的名字,用冒号分割。创建类的时候并不需要一个标准的根类,所以你可以忽略父类。
子类如果要重写父类的方法的话,需要用override标记——如果没有添加override就重写父类方法的话编译器会报错。编译器同样会检测override标记的方法是否确实在父类中。
使用enum来创建一个枚举。就像类和其他所有命名类型一样,枚举可以包含方法。
和oc不同的是可以指定初始的开始值,可以使字符串类型,下边的方法是对当前属性的描述,这个很直观
运行switch中匹配到的子句之后,程序会退出switch语句,并不会继续向下运行,所以不需要在每个子句结尾写break。
let vegetable = "red pepper" switch vegetable { case "celery": let vegetableComment = "Add some raisins and make ants on a log." case "cucumber", "watercress": let vegetableComment = "That would make a good tea sandwich." case let x where x.hasSuffix("pepper"): let vegetableComment = "Is it a spicy \(x)?" default: let vegetableComment = "Everything tastes good in soup." }
子类的定义方法是在它们的类名后面加上父类的名字,用冒号分割。创建类的时候并不需要一个标准的根类,所以你可以忽略父类。
子类如果要重写父类的方法的话,需要用override标记——如果没有添加override就重写父类方法的话编译器会报错。编译器同样会检测override标记的方法是否确实在父类中。
class Square: NamedShape { var sideLength: Double init(sideLength: Double, name: String) { self.sideLength = sideLength super.init(name: name) numberOfSides = 4 } func area() -> Double { return sideLength * sideLength } override func simpleDescription() -> String { return "A square with sides of length \(sideLength)." } } let test = Square(sideLength: 5.2, name: "my test square") test.area() test.simpleDescription()
使用enum来创建一个枚举。就像类和其他所有命名类型一样,枚举可以包含方法。
和oc不同的是可以指定初始的开始值,可以使字符串类型,下边的方法是对当前属性的描述,这个很直观
enum Rank: Int { case Ace = 1 case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten case Jack, Queen, King func simpleDescription() -> String { switch self { case .Ace: return "ace" case .Jack: return "jack" case .Queen: return "queen" case .King: return "king" default: return String(self.toRaw()) } } } let ace = Rank.Ace let aceRawValue = ace.toRaw()
相关文章推荐
- swift详解之十七-----------GCD的一些高级用法
- swift 物理仿真行为
- 读懂Swift 2.0中字符串设计思路的改变
- Swift 2.0初探:值得注意的新特性
- Swift中使用MPMoviePlayerController实现自定义视频播放器界面
- 初识 swift 封装轮播图
- Swift 委托/代理设计模式
- Swift:UIKit中Demo(二)
- Swift 协议
- Swift入门(十一)——类型转换与is、as操作
- Swift - 基础部分
- Swift语言Storyboard教程:第二部
- swift - The Proxy Pattern
- swift详解之十六-----------GCD基础部分
- 十二生肖swift1.2
- ios 多线程(NSOperation)(swift)
- swift详解之十五------------NSThread线程同步锁
- Swift之UINavgationController
- swift学习之路-数组
- 闭包 Closure