2016-05-20 23 views
0

:上記のコードでSwiftでは、Int {get set}とType Intの違いは何ですか?例えば

var someData:Int { 
    get { 
     return 5 
    } 

    set { 

    } 
} 

    lazy var data2 = {return 5}() 

    var data = 5 

、someDataが及びDATA2値int {設定取得}として推測され、データはintとして推測されます。

ところで、data2はクロージャの戻り値から宣言されましたか?クロージャと呼ばれる{}()のようなもの?私は閉鎖が()追加と

{ 
... in 

    return ... 
} 
+0

'{return 5}()'は '{_ in in return 5}'と同じですが、 '{_ - > Int in return 5}'と同じです。 – redent84

+0

同じように、 'var data = 5'は' var data:Int = 5'とまったく同じです。コンパイラに型を推測させるだけです。 – redent84

答えて

1

{ ... }はすぐに呼ばれているだけの閉鎖であるようなものであると思いました。また、

let data2 = { ... in 
    return ... 
}() 

data2get setと推測されていない可能性があります。 getおよびsetは計算されたプロパティを示し、data2はストアドプロパティです。

+0

ストアドプロパティを '{get set}'でオーバーライドすることができます。 – Grimxn

+0

@Grimxnはい、それ以外の方法はありません:) – Sulthan

+0

確かに、 ! – Grimxn

関連する問題