しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

【Swift、検証】didSetでの#functionがどうなるか調べてみる

Swiftには現在のメソッド名を返してくれる#functionというリテラルがあります。
このリテラルがdidSetやComputed propertyだとどうなるかを調べてみました。

func myMethod() {
    print(#function) // → myMethod
}
myMethod()

didSetでの#functionの挙動

didSetで試した所、下のようにプロパティー名を返しました。

class MyClass {
    var myValue = 0 {
        didSet {
            print(#function) // → myValue
        }
    }
}
MyClass().myValue = 1

Computed propertyでの#functionの挙動

Computed propertyもdidSet同様にプロパティー名を返しました。

class MyClass {
    var myValue: Int {
        get {
            print(#function) // → myValue
            return 0
        }
        set {
            print(#function) // → myValue
        }
    }
}
_ = MyClass().myValue
MyClass().myValue = 1