元组分解通配符

时间:2015-06-12 13:47:02

标签: swift coremidi

假设你有这个元组

let tuple = (1,2,3,4)

你可以通过这样做“分解”它

let (a,b,c,d) = tuple

然后根据需要使用单个变量a,b,c,d。

您可以将占位符_用于您不需要的元组中的值。

let (a,b,_,_) = tuple

所以,除了前两个值之外,你忽略了一切。

如果元组有很多元素怎么办?例如,MIDIPacket有一个data元组,其值为128。大多数MIDI消息只有少量数据;通常只有3.如果只分解那些3并且忽略其余部分会很好。

像这样:

let (status, note, velocity, _) = packet.data

快速的呐喊。每个值都需要一个_。

除非我缺少通配符语法。我呢?

let (status, note, velocity, _*) = packet.data

会很好(但这不起作用)。

1 个答案:

答案 0 :(得分:1)

使用您的简单示例可以执行以下操作:

let tuple = (1,2,3,4)
let (a,b,c,d) = tuple
let (x,y) = (tuple.0,tuple.1)

如果您知道元组上的元素,并且您有三个具体的元素,那么这应该可行。如果您不知道哪些包含数据,那么您需要编写一个函数来通过元组等等