为多个swift参数设置相同的值

时间:2016-08-30 22:00:11

标签: swift function swift2

我有一个类似的功能:

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

我希望能够允许某人根据需要设置这两个参数。但如果他们只设置第一个参数,我就像saveURL = documentURL。在函数声明中有没有办法做到这一点?

3 个答案:

答案 0 :(得分:3)

在Swift 2.3,3:

ObjectMapper.convertValue(Object, JavaType)

答案 1 :(得分:1)

SWIFT 2

func stamp(documentURL: NSURL, var saveURL: NSURL? = nil) {
    if saveURL == nil {
        saveURL = documentURL
    } 
}

SWIFT 3

func stamp(documentURL: NSURL, saveURL: NSURL? = nil) {
    var saveURL = saveURL
    if saveURL == nil {
        saveURL = documentURL
    } 
}

答案 2 :(得分:1)

在函数声明本身中无法做到这一点,但是你可以通过使用默认值为nil的可选参数在函数体的单行中执行此操作,并且{ {3}}

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

    // ...
}

这样做的好处是saveURL在函数体中是非可选的,这样您以后就不必使用强制解包操作符。