美文网首页
(十六) [Swift]Swift中的Struct

(十六) [Swift]Swift中的Struct

作者: 修行猿 | 来源:发表于2016-08-12 07:41 被阅读55次

    1.定义一个struct

    struct Point {
        var x :Int
        var y : Int
    }
    

    默认struct 会有一个以成员变量为参数的初始化函数

    var p = Point(x:1,y:2)
    

    2.为struct定义初始化方法

    struct Point2 {
        var x :Int
        var y : Int
        init(string:String){
            let strs = string.componentsSeparatedByString(",");
            x = Int(strs.first!)!
            y = Int(strs.last!)!
        }
    }
    

    初始化方法的调用

    var p2 = Point2(string: "1,2")
    

    如果自己声明了init方法系统不会再生成默认的初始化方法

    var p2 = Point2(x:1,y:1)   //此时就会报错
    //如果还想用这个方法需要自己将默认生成的init方法实现
    

    3.struct添加一个成员函数

    struct Point3 {
        var x :Int
        var y : Int
        func moveForNewPoint(xDistance:Int) -> Point3{
            return Point3(x:self.x+xDistance,y: self.y)
        }
    }
    

    在struct的成员函数中修改自己本身的值,应该在函数签名上加上mutating关键字

    struct Point4 {
        var x :Int ;
        var y : Int;
       mutating func move(xDistance:Int){
            self.x += x   //不报错
        }
    //    func move2(xDistance:Int){
    //        self.x += x   //报错
    //    }
    }
    

    4.struct 是一个值类型

    var  p3 = Point(x:1,y:2)
    var p4 = p3
    p4.x = 1000
    p3.x    // 1
    

    相关文章

      网友评论

          本文标题:(十六) [Swift]Swift中的Struct

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