天天看点

Swift学习(十):方法(实例方法,类型方法,mutating,@discardableResult)方法(Method)mutating@discardableResult

方法(Method)

  • 枚举、结构体、类都可以定义实例方法、类型方法
  1. 实例方法(Instance Method):通过实例对象调用,相当于OC中的对象方法
  2. 类型方法(Type Method):通过类型调用,用static或者class关键字定义,相当于OC中的类方法
Swift学习(十):方法(实例方法,类型方法,mutating,@discardableResult)方法(Method)mutating@discardableResult
  • self 
  1. self在实例方法中代表实例对象 
  2. self在类型方法中代表类型
  3. 在类型方法static func getCount中cout等价于self.cout、Car.self.cout、Car.cout

mutating

  •  结构体和枚举是值类型,默认情况下,值类型的属性不能被自身的实例方法修改 
  • 在func关键字前加mutating可以允许这种修改行为
Swift学习(十):方法(实例方法,类型方法,mutating,@discardableResult)方法(Method)mutating@discardableResult
Swift学习(十):方法(实例方法,类型方法,mutating,@discardableResult)方法(Method)mutating@discardableResult

@discardableResult

在func前面加个@discardableResult,可以消除:函数调用后返回值未被使用的警告

Swift学习(十):方法(实例方法,类型方法,mutating,@discardableResult)方法(Method)mutating@discardableResult

  p.moveX(deltaX: 10)的返回值未被使用,原本会报警告,但是使用@discardableResult就没有了警告

Swift学习(十):方法(实例方法,类型方法,mutating,@discardableResult)方法(Method)mutating@discardableResult

   get的返回值未被使用,,原本会报警告,但是使用@discardableResult就没有了警告