情境:
第1步:
第2步:
第3步:
问题摘要:
我开始使用swift及其基本概念。
首先,我尝试使用多个不同类型的元素创建一个数组ab
(不确定它是否应该被称为数组)。然后我尝试测试索引值ab[2]
。
成功测试索引值后,我创建了一个字典dictAbc
,其中我使用指向其键的不同索引ab[4]
ab[6]
。它引入了步骤1中提到的错误。
我尝试将ab[2]
加盖到步骤2中提到的打印功能中,它删除了错误
然后我删除了打印方法并使STEP 3代码与STEP 1相同,它现在不会产生任何错误。
代码:
import UIKit
var str = "Hello, playground"
var num: Float64 = 4.00000000000000000000000000
print("\(num)")
let a = "Hello"
let b = 12786
let c = a + String(b)
var ab = [1221, 123123, 123123,123123,"asdasd", "adasdasd", 1263781.123]
ab[2]
var dictAbc = ["hello":ab[4], "let":ab[6]]
dictAbc["let"]
Project Navigator屏幕截图
注意:Xcode 7.0版(7A220)
Playground编译器出了什么问题?
答案 0 :(得分:3)
这是因为Playground的工作方式:它会在您完成输入后立即尝试评估每个表达式。
所以当你快速输入时:
ab[1]
没有错误,但是如果你花时间并暂停光标在括号内:
ab[]
您确实会收到cannot subscript a value of type '[NSObject]' with an index of type '()'
错误,但由于Playground的“实时”特性,这只是一个临时错误消息。
如果在输入索引编号后错误仍然存在,那么为了使其消失,您只需通过在某处添加空行,在表达式后添加空格或添加其他代码来“唤醒”Playground,当然。 Playground将重新评估所有内容并删除错误。