访问存储在字典中的元组

时间:2015-01-09 07:57:25

标签: swift

我正在尝试访问存储在字典中的元组元素。

// 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仍然是元组。

在尝试访问字典中的元组时,我的错误是什么?

2 个答案:

答案 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

但是,您应该能够以同样的方式访问cb