Tom*_*m J 7 function swift swift2
我有一个类似这样的功能:
func stamp(documentURL: NSURL, saveURL: NSURL) {
...}
Run Code Online (Sandbox Code Playgroud)
我希望能够允许某人根据需要设置这两个参数.但如果他们只设置第一个参数,我想要saveURL = documentURL.在函数声明中有没有办法做到这一点?
在函数声明本身中无法执行此操作,但是您可以通过使用默认值为 的可选参数nil和nil 合并运算符在函数体的一行中执行此操作。
func stamp(documentURL: NSURL, saveURL: NSURL? = nil) {
let saveURL = saveURL ?? documentURL
// ...
}
Run Code Online (Sandbox Code Playgroud)
这样做的优点是它saveURL在函数体内是非可选的,这样您就不必稍后使用强制展开运算符。