Method Requirements

작성일

Method Requirements

  • 구조체에서는 mutating 키워드를 사용해야지 메서드를 사용할 수 있다.

기본

protocol ProtocelName {
  func name(param) -> ReturnType
  static func name(param) -> ReturnType
  mutating func name(param) -> ReturnType
}

활용

protocol Resettable {
  func reset()
}

class Size: Resettable {
  var width = 0.0
  var height = 0.0

  func reset() {
    width = 0.0
    height = 0.0
  }
}

하지만 구조체에서는

protocol Resettable { mutating func reset() }

struct Size: Resettable { var width = 0.0 var height = 0.0

mutating func reset() { width = 0.0 height = 0.0 } } ~~~ 이렇게 사용해야한다.