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
网友评论