特別是關於成員變量,Swift 3中的以下內容有區別嗎?在這兩種情況下,Foo都可以通過該文件中的所有代碼訪問。與隱式範圍的'laa'屬性一樣,這似乎與文檔相矛盾。在Swift 3中,關於成員變量,'private class Foo'和'fileprivate class Foo'有區別嗎?
如果您將某個類型的訪問級別定義爲私有或私有文件,則其成員的默認訪問級別也將爲私有或私有文件。
但是,在下面的兩種情況下,'laa'可以從同一文件中的其他類訪問,這意味着它是fileprivate,而不是私人的,因爲文檔說第一個應該是。
private class Foo
{
var laa:String
}
fileprivate class Foo
{
var laa:String
}
相關:[區分私人和fileprivate頂級類](http://stackoverflow.com/questions/43054774/distinction-between-private-and-fileprivate-top-level-classes) – Hamish
感謝您刪除dup! :) – MarqueIV
我只是簡單地說在這種情況下文檔是錯誤的,或者至少是誤導 - private類型的成員可以訪問的範圍默認情況下是定義該類型的封閉範圍。在頂層聲明的情況下 - 文件就是這個範圍。 – Hamish