私はSwiftのアクセス制御修飾子について誤解しているようです。ここに遊び場からの私のコードは次のとおりです。他の言語から計算されたプロパティの迅速なアクセス制御:これはなぜ機能しますか?
class Something {
private (set) var name :String {
get { return "" }
set {}
}
}
var thing = Something();
thing.name = "";
私の勘と経験が、最後の行にコンパイルエラーがなければならないことを私に伝えます。
しかし私が学んでいる本では、プライベートとは、変更されているメンバーが同じソースファイルからのみアクセス可能であることを意味しています。
私はこのシナリオを一般的にはほとんどのプロジェクトでエラーになると思いますが、これは私がこのコードを遊び場で実行しているためです。
プライベートメンバーには、同じソースファイルからしかアクセスできないというステートメントは完全に正確ですか?
* "プライベートメンバーは同じソースからしかアクセスできません" * Swift 2では完全に正確です - Swift 3(Xcode 8 beta 6)はプライベートの意味を変更しました[ swift3のfileprivateとprivateの間で](http://stackoverflow.com/questions/39027250/what-is-a-good-example-to-differentiate- between-fileprivate-and-private-in-swift)。 –
@MartinRありがとう、答えとしてあなたのコメントを投稿し、私はそれを受け入れるでしょう。 –
私は既存の答えを繰り返す必要はありません:)そして、実際にあなたの質問は私には不明です。あなたの最後の声明は正しいので、なぜそれについて疑問に思いますか? 「このシナリオは、通常、ほとんどのプロジェクトでエラーになるでしょう」という意味はどうですか? –