【发布时间】:2016-10-09 15:57:58
【问题描述】:
我正在尝试理解 Swift 中元组数组的语法:
如果我创建一个元组:
var gameScore: (points: Int, player: String)
我可以这样赋值:
gameScore = (1700, "Lisa")
并创建这个元组的数组:
var gameScores = [gameScore]
我可以这样追加到数组中:
gameScores.append((1650, "Bart"))
这样:
gameScore = (1600, "Maggie")
gameScores += [gameScore]
但不是这样:
gameScores += [(1600, "Maggie")]
游乐场错误是:
Playground 执行失败:错误:Tuples Playground.playground:38:1:错误:无法将类型“[(points:Int,player:String)]”的值转换为预期的参数类型“inout _” gameScores += [(1600, "Maggie")]
但是,这种方式有效:
gameScores += [(points: 1600, player: "Maggie")]
是的——我有上面的代码可以工作,但我试图找出我在失败的语法中不理解的地方。元素不需要以.append() 方法命名,但需要以+= [()] 命名。
【问题讨论】:
-
Swift 3 中的类型检查器目前在使用元组标签时表现得有些奇怪,例如参见 this question、this question 和 this bug report。
标签: arrays swift syntax tuples