美文网首页
Swift枚举和结构体(三)

Swift枚举和结构体(三)

作者: chrisdev | 来源:发表于2018-11-17 01:27 被阅读0次

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

    相关文章

      网友评论

          本文标题:Swift枚举和结构体(三)

          本文链接:https://www.haomeiwen.com/subject/vvtbfqtx.html