我在Swift中具有默认参数的函数。
func test(string: String = "", middleString: String = "", endString: String = "") -> Void {
// do stuff
}
我想传入将是可选字符串的变量。
let string: String?
let middleString: String?
let endString: String?
如何实现,如果参数为nil,则使用默认参数。 如果不是,则使用可选值中的值。
测试(字符串,middleString:middleString,endString:endString)
最佳答案
您必须使用可选字符串 String?
作为参数类型,默认值为 nil
。然后,当您调用您的函数时,您可以提供一个字符串或忽略该参数。
func test(string: String? = nil, middleString: String? = nil, endString: String? = nil) -> Void {
let s = string ?? ""
let mS = middleString ?? ""
let eS = endString ?? ""
// do stuff with s, mS, and eS, which are all guaranteed to be Strings
}
在您的函数中,您必须检查每个参数是否为 nil
并替换为默认值。使用 ??
运算符可以让这一切变得简单。
然后您可以通过提供所有参数、不提供参数或仅提供您想要包括的参数来调用您的函数:
test(string: "foo", middleString: "bar", endString: "baz")
test()
test(string: "hello", endString: "world")
关于ios - Swift 中的可选默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31301844/