struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 10, y: 10)
var p2 = Point(y: 10) error: Missing argument for parameter ‘x’ in call
var p3 = Point(x: 10) error: Missing argument for parameter ‘y’ in call
var p4 = Point() error: Missing argument for parameter ‘x’ in call
3. 自定义初始化器
旦在定义结构体时自定义了初始化器,编译器就不会再帮它自动生成其他初始化器;
struct Point {
var x: Int
var y: Int
init(x Int, y: Int) {
self,x = x
self.y = y
}
}
var p1 = Point(x: 10, y: 10)
var p2 = Point(y: 10)
var p3 = Point(x: 10)
var p4 = Point()
4. 结构体内存结构
struct Point {
var x: Int = 0
var y: Int = 0
var origin: Bool = false
}
print(MemoryLayout<Point>.size) // 17
print(MemoryLayout<Point>.stride) // 24
print(MemoryLayout<Point>.alignment) //8