Swift枚举和结构体(三)

2018-11-17  本文已影响0人  chrisdev

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")

上一篇下一篇

猜你喜欢

热点阅读