我有一个类似的功能:
func stamp(documentURL: NSURL, saveURL: NSURL) {
...}
我希望能够允许某人同时设置这两个参数。但是,如果他们仅设置第一个参数,则我想使用saveURL = documentURL。有什么办法可以在函数声明中做到这一点?
最佳答案
在函数声明本身中无法执行此操作,但是您可以通过使用默认值为nil
和nil coalescing operator的可选参数,在函数主体的一行中执行此操作。
func stamp(documentURL: NSURL, saveURL: NSURL? = nil) {
let saveURL = saveURL ?? documentURL
// ...
}
这样做的好处是
saveURL
在函数体内是非可选的,从而使您免于以后不得不使用force unwrap运算符的麻烦。关于swift - 为多个快速参数设置相同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39237749/