我正在尝试访问存储在字典中的元组元素。
// declare the dictionary
var a: [Int: (start: Int, end: Int)]!
a=[
0: (1, 2),
3: (4, 5)
]
// printout is "Optional {(1, 2)}"
var c = a[0]
println(c)
// throws an error - "does not have a member"
c.start
// printout is also "Optional {(1, 2)}"
var b = a[0].0
println(b)
在上面的例子中,c不能访问“start”,而b仍然是元组。
在尝试访问字典中的元组时,我的错误是什么?
答案 0 :(得分:1)
// declare the dictionary
var a: [Int: (start: Int, end: Int)]!
a=[
0: (1, 2),
3: (4, 5)
]
// printout is "Optional {(1, 2)}"
var c = a[0]
println(c)
// just use ! to force unwrap your optional
c!.start
// or you can use if let to unwrap it
if let c = a[0] {
println(c)
c.start
}
var b = a[0].0
println(b!)
你可以检查b是否像这样
if let b = b {
println(b) // here b is not optional anymore
}
答案 1 :(得分:0)
首先你不能说
c.start
因为c
是可选的,您需要打开它,如:
c!.start
b
同样的事情,你不能b.0
,但你需要b!.0
,这与b的bty相同!.start
但是,您应该能够以同样的方式访问c
和b
。