gpt4 book ai didi

Swift.Bool 不是 Bool 吗?

转载 作者:行者123 更新时间:2023-12-05 09:31:20 31 4
gpt4 key购买 nike

我有一个函数

func login<Bool> (parameters: [(String, Any)],
completion: @escaping (Bool) -> Void) {
//Do something
}

每当我这样调用完成处理程序时

completion(false)

completion(true)

XCode 一直告诉我:“无法将‘Swift.Bool’类型的值转换为预期的参数类型‘Bool’”

最后,我删除了函数开头的 ,错误消失了。我以为那是在声明函数的类型,但坦率地说,我不确定这意味着什么,也不确定 <> 尽管使用谷歌搜索做了什么。我确信它解释得很好,但我并没有仅仅通过谷歌搜索来理解这个概念。以及为什么 Swift.Bool 无法转换为 Bool。我能够发现 bool 有一个客观的 C 版本,我想也许它正在要求它,但这也没有用。 Bool 是什么意思?

最佳答案

语法 func login<Bool>定义一个名为 Bool 的类型参数.与Swift.Bool无关.这只是您定义的名称。就好像你声明了一个局部变量一样 var Bool: String .您将有一个名为 Bool 的变量那实际上是一个字符串。不要那样做。

如果您希望值始终为 Bool,请删除类型参数。这不是通用的。

func login(parameters: [(String, Any)],
completion: @escaping (Bool) -> Void) {

有关 <...> 的详细信息语法和泛型参见 Generics在 Swift 编程语言中。

关于Swift.Bool 不是 Bool 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68866370/

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