gpt4 book ai didi

arrays - 比较可选的 Bool 变量不起作用

转载 作者:行者123 更新时间:2023-11-28 15:19:42 24 4
gpt4 key购买 nike

我必须创建一个 Optional Bool 类型的二维 Array 并比较其中的值,但我做不到。我第一次尝试以这种方式声明:

var Answ = [[Bool?]] ()
var Page = 0

for i in 0...4
{
if Answ[Page][i] == true
{...}

else if Answ[Page][I] == false
{...}

else
{...}

}
...

但是当我启动程序时,它说:

index out of range

当 Xcode 将 Answ[Page][i] 与值 true 进行比较时。

所以,我尝试修改代码,将数组声明成这样:

var Answ = Array (repeating: Array (repeating: Bool?.self , count: 5), count: 40)
var Page = 0

for i in 0...4
{
if Answ[Page][i] == true
{...}

else if Answ[Page][I] == false
{...}

else
{...}

}
...

但同时,(if Answ[Page][i] == true) 抛出此错误:

Binary operator '==' cannot be applied to operands of type 'Bool?.Type' (aka 'optional.Type') and 'Bool'"

此外,在我尝试将数组的值设置为 true/false (Answ[Page][2] = true) 的其他代码点中,Xcode 是这样说的:

cannot assign value of type 'Bool' to type 'Bool?.Type' (Aka'Optional.Type')

有人可以帮帮我吗?提前谢谢你。

我找到了这个主题:

Checking the value of an Optional Bool

但这对我帮助不大。

最佳答案

可以比较可选的 boolean 值,就像您链接到的问答中一样。问题是

var Answ = Array (repeating: Array (repeating: Bool?.self , count: 5), count: 40)

创建一个(嵌套的)Bool?.self 数组,它是可选 boolean 值的类型,而不是它的类型。

您想要的是一个(嵌套的)Bool? values 数组, 初始化为 nil:

var answers: [[Bool?]] = Array(repeating: Array(repeating: nil , count: 5), count: 40)

或者:

var answers = Array(repeating: Array(repeating: Bool?.none , count: 5), count: 40)

关于arrays - 比较可选的 Bool 变量不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46236868/

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