我有一个与此类似的功能:
func stamp(documentURL: NSURL,saveURL: NSURL) { ...}
我希望能够允许某人根据需要设置这两个参数.但如果他们只设置第一个参数,我想要saveURL = documentURL.在函数声明中有没有办法做到这一点?
在函数声明本身中没有办法做到这一点,但是你可以通过使用默认值为nil的可选参数和
nil coalescing operator在函数体的单行中完成.
func stamp(documentURL: NSURL,saveURL: NSURL? = nil) { let saveURL = saveURL ?? documentURL // ... }
这样做的好处是saveURL在函数体中是非可选的,从而使您不必在以后使用强制解包操作符.