【发布时间】:2018-02-24 11:40:35
【问题描述】:
我必须创建一个可选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
{...}
}
...
但是当我启动程序时,它会说:
索引超出范围
当 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) 会抛出此错误:
二元运算符'=='不能应用于'Bool?.Type'(又名'optional.Type')和'Bool'类型的操作数"
此外,在我尝试将数组的值设置为真/假 (Answ[Page][2] = true) 的代码的其他点中,Xcode 表示:
无法将类型“Bool”的值分配给类型“Bool?.Type”(又名“Optional.Type”)
有人可以帮帮我吗?提前谢谢你。
我找到了这个话题:
Checking the value of an Optional Bool
但这对我没有多大帮助。
【问题讨论】:
-
变量名应该小写驼峰式,以防止与类型混淆
-
按照 Apple 文档,您应该将两个布尔值与
==developer.apple.com/documentation/swift/bool/2430796 进行比较。也许,您使用[Page][2]获得的价值不是布尔值
标签: arrays swift boolean optional