Что такое модификатор доступа по умолчанию для свойства частного класса в swift 5.0? - PullRequest
4 голосов
/ 16 октября 2019

В соответствии с документацией swift, Если вы определяете уровень доступа типа как частный или как частный файл, уровень доступа его членов по умолчанию также будет частным или частным

Я создал пример кода для анализа приведенного выше утверждения с использованием Swift 5.0

private class Profile {
    var name: String?
    //By default name should have private access level implicitly
}

private class Person {
    private var name: String?
    //name should have private access level explicitly
}

func gobalTestFunction() {
    let profile = Profile()
    let profileName = profile.name
    //This does not give any error and name is accessible here

    let person = Person()
    let personName = person.name
    //This gives error 'name' is inaccessible due to 'private' protection level
}

Ожидаемый результат:

При создании profileName должна быть ошибка, аналогичнаяошибка, возникающая при создании personName

'name' is inaccessible due to 'private' protection level

Фактический результат:

При создании personName возникает ошибка, но при создании profileName ошибки не обнаружено.

1 Ответ

1 голос
/ 18 октября 2019
  • Чтобы сделать класс доступным внутри цели / фреймворка, а не за его пределами, вы можете использовать модификатор внутреннего доступа по умолчанию.
  • А если вы хотите сделать класс доступным в файле, вы можете использоватьмодификатор доступа к файлу.


    Короче говоря, делать закрытый класс на верхнем уровне не имеет смысла. И это на самом деле файл конфиденциально.

    Спасибо @Martin R за полезный комментарий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...