我有一个类似的功能:

func stamp(documentURL: NSURL, saveURL: NSURL) {
        ...}

我希望能够允许某人同时设置这两个参数。但是,如果他们仅设置第一个参数,则我想使用saveURL = documentURL。有什么办法可以在函数声明中做到这一点?

最佳答案

在函数声明本身中无法执行此操作,但是您可以通过使用默认值为nilnil coalescing operator的可选参数,在函数主体的一行中执行此操作。

func stamp(documentURL: NSURL, saveURL: NSURL? = nil) {
    let saveURL = saveURL ?? documentURL

    // ...
}

这样做的好处是saveURL在函数体内是非可选的,从而使您免于以后不得不使用force unwrap运算符的麻烦。

关于swift - 为多个快速参数设置相同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39237749/

10-10 21:33