按下标访问元组

Bad*_*Cat 7 tuples swift

假设我有这段代码:

let tuples = ("1", 2, "3", "4", "5", "6", "7", false)

func tableView(tableView:NSTableView, viewForTableColumn tableColumn:NSTableColumn?, row:Int) -> NSView?
{
    let valueForView = tuples[row]
}
Run Code Online (Sandbox Code Playgroud)

有没有办法通过下标访问元组?

Ben*_*n-G 9

不,您只能通过直接指定索引来访问元组元素,例如

tuples.5
Run Code Online (Sandbox Code Playgroud)

为了您的目的,您应该只使用一个数组.

  • 元组是编程语言的一部分,而不是标准库的一部分,因此我认为我们不能扩展该类型。直到编译器至少是开源的为止;) (2认同)

Tha*_*ham 5

使用反射是可能的:

Mirror(reflecting: tuples).children[AnyIndex(row)].value
Run Code Online (Sandbox Code Playgroud)


Arb*_*tur 2

您想要的对于元组来说是不可能的,如果您不想稍后强制转换所有内容,那么您唯一的选择是结构或类。struct 似乎是一个更好的选择:)

struct MyStruct {
    let opt1 = 0
    let opt2 = 0
    let opt3 = 0
    ...
    let boolThing = false
}
Run Code Online (Sandbox Code Playgroud)