Swift参数中的默认关键字

时间:2014-07-28 09:06:13

标签: ios swift

在阅读NSLocalizedString的初始值设定项时,我发现某些参数默认为值defaultdefault关键字代表什么?

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

1 个答案:

答案 0 :(得分:88)

这不是一个有效的Swift代码,它是即时生成的。

这里的default表示存在一些默认值,但生成器无法直观地显示它。默认值在技术上是内联函数,因此无法轻松转换为简单声明。

您可以看到assert

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

file默认为#file(Swift 1.x中为__FILE__),line默认为#line__LINE__在Swift 1中.X)。

如果是NSLocalizedString,则默认值为"Localizable",引用默认的本地化文件Localizable.strings