gpt4 book ai didi

ios - 如何在 Swift 中将可变参数(省略号)指定为可选参数?

转载 作者:IT王子 更新时间:2023-10-29 05:41:22 26 4
gpt4 key购买 nike

是否可以在 Swift 中让可变参数成为可选参数?我尝试了两种有意义的方法,但都没有编译:

func myFunc(queryFormat: String?...) {

}

func myFunc(queryFormat: String...?) {

}

注意:从技术上讲,第一个实现可以编译,但如果您尝试解包它:

if let queryFormatUnwrapped = queryFormat {
...
}

你得到一个错误 Bound value in a conditional binding must be of Optional Type 这表明它把它当作一个可选字符串数组而不是一个可选字符串数组(这有点傻).

最佳答案

不可能有一个可选的可变参数。该函数将始终接收可变参数的数组。

但是,数组可以为空,或者数组中的值可以为nil。

我将一些示例代码放在一起,希望它有助于传达我想说的内容。

func vardicPrint(strings: String...) {
if strings.isEmpty {
print("EMPTY")
} else {
for string in strings {
print(string)
}
}
}

func optionalPrint(maybeStrings: String?...) {
if maybeStrings.isEmpty {
print("EMPTY")
} else {
for string in maybeStrings {
if let string = string {
print(string)
} else {
print("nil")
}

}
}
}

vardicPrint("Hello", "World", "!")
vardicPrint()


var nilString: String?
optionalPrint("Goodbye", nilString, "World", "!")

/* OUTPUT:
Hello
World
!
EMPTY

Goodbye
nil
World
!
*/

关于ios - 如何在 Swift 中将可变参数(省略号)指定为可选参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30384706/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com