1).结构体定义和结构体成员访问
定义语法:
结构体类型 结构体名 {
成员属性类型 属性名 : 属性类型
...
}
例子:
struct Rect {
var width : Double
var height : Double
}
成员变量调用例子:
struct Rect {
var width : Double = 10
var height : Double = 10
}
var rect1 = Rect();
rect1.width = 11;
2).结构体构造器
struct Rect {
var width : Double
var height : Double
}
var rect1 = Rect(width: 10, height: 10)
//结构体逐一成员构造器
//在没有额外声明初始化方法时,swift会默认提供这个方法初始化,swift要求结构体或者类的成员变量,在初始化时给定初值
3).结构体中定义成员方法
struct Rect {
var width : Double
var height : Double
func getWidth() -> Double {
return width // return self.width //成员方法可以访问成员属性
}
}
var rect1 = Rect(width: 10, height: 10)
rect1.getWidth() //成员方法依赖于对象
4).结构体是值类型
struct Rect {
var width : Double = 19
var height : Double = 10
}
var rect1 = Rect()
var rect2 = rect1
rect1.width = 100
print(rect2.width) //rect2的值没有改变
可以看出 rect1跟rect2是两个不同的实例,但是内容一致!并非是两个引用,指向了同一块内存区域
5).类的基本定义
类的声明跟结构体基本一致,关键字改为Class即可,成员访问也是通过“点语法”
但是类无逐一成员构造器这个默认方法
类不同于结构体的值类型,类是引用类型!
swift中提供恒等运算符“ ===”来判断两个类对象是否指向同一个实例 // “!==”