2016-12-07 3 views
-1

: -プライベートセッターと読み取り専用プロパティの違いは何ですか?間の違いを何

private(set) var string: String 

var string: String { get } 
+0

クラスを定義したファイルでは、このクラス内でのみその文字列の値を設定できます。この変数はどこからでも設定することはできません。 –

+0

私はそれが明確な1つの機能を持っていると思ったが、それはプライベートであり、もう1つはありません – zombie

+1

プライベートセットでは、プロパティが配置されているクラスでプロパティを設定することができます。しかし、readonlyプロパティでは、どこからでもプロパティを設定できます。 –

答えて

1

プライベートセッターは変数は、それが中で宣言されているクラス内で設定することができます意味それは、そのクラスの外の読み取り専用プロパティのように動作します。範囲。

Readonlyプロパティにはアクセスできますが、変更することはできません。例外なし。

0

私はそう思います:私立のvar文字列:Stringのために、他のファイルはそれを訪問することができません。値を変更することができます。 var string:String {get}では、他のファイルにアクセスできます。var stringValue = "";このように値を変更する別のプロパティを設定できます。 var string:String {get {return stringValue}}、stringValueを変更して文字列を変更できます。ちょうど私の考え。

1

private(set) var string: String - この場合、private(set)はセット機能をプライベートにし、プライベートはセットとファンクションをプライベートにします。

var string: String { get } - この場合、可変文字列は読み取り専用ですが、

必要に応じて、この文章をさらに明確にするためにhttp://kostiakoval.github.io/posts/swift-public-property-with-private-setterにアクセスしてください。

関連する問題