Swift枚举和结构体(三)
1. 枚举, 使用enum来创建枚举, 类似于类的命名类型, 枚举类型赋值可以是字符串/字符/整形/浮点型, 枚举也可以包含方法. Swift的枚举成员被创建时不会被赋予一个默认的整数值.
enum Rank: Int {
case one, two, three, four, five
func description() -> String { println("enum description.") }
}
枚举类型赋值: enum Rank2: Int { case north = 1, venus, earth, Mars}
枚举类型使用: let r = Rank2(rawValue: 2)
if let r = r {
switch r {
case .venus: println("venus")
default: println("something else")
}
}
2. 结构体, 结构体是一系列相同数据或者不同数据的集合. 结构体是值类型, 在方法传递过程中是值传递. 扩充结构体, 默认情况下创建Location使用Location(x: y:), 但是为了更加灵活可以对构造函数进行扩充. 扩充的构造函数必须保证成员变量是有值的, 扩充构造函数会覆盖原有的构造函数
struct Location {
var x: Double; var y: Double;
} //使用 let location = Location(x: 90, y: 90)
struct Location {
var x: Double; var y: Double;
init(x: Double, y: Double) { self.x = x; self.y = y }
init(xyString: String) {
let strs = xyString.componentsSeparateByString(".")
x = Double(strs.first!)!; y = Double(strs.last!)!
}
} //使用: let location = Location(x: 100, y: 100); let location1 = Location(xyString: "100, 100")