gpt4 book ai didi

swift - 在具有多个唯一类型默认参数的 swift 函数的情况下,为什么类型推断不能解决问题?

转载 作者:搜寻专家 更新时间:2023-11-01 06:31:32 25 4
gpt4 key购买 nike

考虑以下方法签名:

func doSomething(_ boolToConsider: Bool = false, _ stringToConsider: String? = nil)

按以下方式调用此方法会导致错误:

doSomething("foo")

error message

为什么 Swift 无法识别我打算使用默认的 boolToConsider 和提供的 stringToConsider

最佳答案

正如@Woof 已经提到的,您可以提供 3 种不同的方法签名来完成您想要的,并且只有其中一个可以将所有参数设置为默认值,否则它会提示您的方法使用不明确:

func doSomething(_ bool: Bool) {
print("bool:", bool)
}
func doSomething(_ string: String) {
print("string:", string)
}
func doSomething(_ bool: Bool = false, _ string: String = "") {
print("bool:", bool)
print("string:", string)
}

doSomething(true)
doSomething("foo")
doSomething()
doSomething(true, "foo")

这将打印

doSomething with bool value only

bool: true

doSomething with string value only

string: foo

doSomething with default values

bool: false

string: default

doSomething with default values

bool: true

string: foo

关于swift - 在具有多个唯一类型默认参数的 swift 函数的情况下,为什么类型推断不能解决问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46657519/

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