Подтвердить что ты не робот

По умолчанию ключевое слово в параметре Swift

При чтении инициализатора для NSLocalizedString я вижу, что некоторые из параметров по умолчанию имеют значение default. Что означает ключевое слово default?

func NSLocalizedString(key: String, tableName: String? = default, bundle: NSBundle = default, value: String = default, #comment: String) -> String
4b9b3361

Ответ 1

Это недействительный код Swift, который генерируется на лету.

default здесь означает, что есть какое-то значение по умолчанию, но генератор не может визуализировать его правильно, чтобы вы его увидели. Значение по умолчанию является технически встроенной функцией, поэтому ее нельзя легко преобразовать в простое объявление.

Вы можете видеть похожие объявления для assert

func assert(condition: @auto_closure () -> Bool,
            _ message: StaticString = default,
                 file: StaticString = default,
                 line: UWord = default)

Где file по умолчанию #file (__FILE__ в Swift 1.x) и line по умолчанию используется #line (__LINE__ в Swift 1.x).

В случае NSLocalizedString значение по умолчанию "Localizable", ссылающееся на файл локализации по умолчанию Localizable.strings.