本文首发于个人博客
前言
方法,也就是函数。同其他语言一样,在Swift中,也是分为实例方法和类型方法
枚举、结构体、类都可以定义实例方法、类型方法
实例方法(Instance Method):通过实例对象调用
类型方法(Type Method):通过类型调用,用static或者class关键字定义,类似OC中的类方法
例如有个类Car,有实例方法getnNum
和类型方法getCount
1 | class Car { |
self
不管是实例方法,还是类型方法,里面都可以调用 self
- 在实例方法中代表实例对象
- 在类型方法中代表类型
- 在类型方法static func getCount中
- cout等价于self.cout、Car.self.cout、Car.cout
例如上面的代码可以写成
1 | class Car { |
关键字mutating
- 结构体和枚举是值类型,默认情况下,值类型的属性不能被自身的实例方法修改
- 在func关键字前加mutating可以允许这种修改行为
eg:
1 | struct Point { |
- 加上关键字
mutating
之后就可以了
1 | struct Point { |
关键字@discardableResult
- 在func前面加个@discardableResult,可以消除:函数调用后返回值未被使用的警告⚠
eg:
1 |
|
因为方法moveX
的返回值没有使用,编译器会报警告
- 如果加了关键字
@discardableResult
就不会警告了
1 |
|
参考资料: