(十六) [Swift]Swift中的Struct

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 123.继承 一个类可以从另外一个类继承方法,属性和其他特征。当一个类继承另外一个类时, 继承类叫子类, 被继承的...
    无沣阅读 1,493评论 2 4
  • 在实际编程中,很多时候,我们都需要使用比Int,String这类简单类型更复杂的类型,例如,需要两个Double表...
    AKyS佐毅阅读 2,043评论 0 6
  • 132.转换错误成可选值 通过转换错误成一个可选值,你可以使用 try? 来处理错误。当执行try?表达式时,如果...
    无沣阅读 1,433评论 0 3
  • 还记得《西游记》刚刚在电视上播出的时候,我超喜欢孙悟空,认为他神通广大无所不能,是一个拯救世界的英雄。后来,有了...
    裸夏了夏天阅读 353评论 0 1
  • 前景回顾 第五章: 以前听陈奕迅唱过一首《K歌之王》,其中有一句歌词是“……爱爱爱爱到要吐……”,当时还嘲笑怎么会...
    夜小漾阅读 498评论 0 2

友情链接更多精彩内容