【发布时间】:2014-08-14 18:55:06
【问题描述】:
我想用下面的代码片段将一个数字分解为其主要因素,但我不完全理解给定的错误消息(见上面的标题)。首先我尝试使用字典,但我被困在按键排序这本字典上。其次,我尝试了元组版本,但现在我遇到了编译器错误。
谁能看出以下代码片段的最后一行有什么问题?
var pfc : [(prime: Int, count: Int)] = []
pfc.append(prime: 2, count: 2)
pfc += [(prime: 3, count: 4)]
var p = 5, c = 1
pfc.append(prime: p, count: c)
在堆栈溢出中,可以找到关于 String.Index 的类似问题,但答案还没有给我足够的线索。因此,非常欢迎任何帮助,在此先感谢!
【问题讨论】:
-
pfc.append((prime: p, count: c)) 有效吗?
-
append一直对元组数组有点古怪。此行为请file a bug! -
@sanz:不:pfc.append((prime:p, count:c)) 不起作用,但是 pfc += [(prime:p, count:c)] 确实起作用!注意:我使用的是 Xcode6 Beta5。
-
@Nate 我把这个 bug 提交给了 Apple(我的第一个),很好奇他们用它做了什么。感谢您的提示(和 URL)。
-
在开发这些 beta 版本时,他们似乎确实在响应 Swift 问题。即使它作为副本被关闭,它仍然很有价值,因为他们可以了解有多少人遇到了问题。 FWIW,我认为第二行和最后一行都应该出错,因为您没有将元组传递给
append()方法,而是单独的参数。
标签: compiler-errors swift tuples