我昨天问了一个问题,并收到了一个很好的答案,解决了我的大部分问题。我试图将具体的数值与11种颜色配对,分配增量为12,而形状为每12个增量重复一次。看看这个代码,让我知道如果有什么我可以改变
ex: 0:black:circle, 1:black:cross, 2:black:star...12
0:brown:circle, 1:brown:cross, 2:brown:star...12
0:red:circle, 1:red:cross, 2:red:star...12
依此类推,直到每个数字被赋予一个颜色和形状。下面的代码是这样做的。但它以我没有想到的方式来做,输出结果如下。
struct ValueStruct {
var numValue: Int
var color: String
var shape: String
init(numValue: Int, color: String, shape: String) {
self.numValue = numValue
self.color = color
self.shape = shape
}
}
var startingNumValue = 0
let colorsArray = ["Black", "Brown", "Red", "Yellow", "Orange", "Green", "Grey", "Blue", "Purple", "Pink", "White"]
let shapesArray = ["Circle", "Cross", "Star", "Rectangle", "Triangle", "Square", "Heart", "Crown", "Line", "Diamond", "Ellipse", "Sun"]
var containingArray:[ValueStruct] = []
for colorItems in colorsArray {
for shapeItems in shapesArray {
containingArray.append(ValueStruct(numValue: startingNumValue, color: colorItems, shape: shapeItems))
startingNumValue += 1
}
这是什么输出在操场上看起来像这样的几个问题。
1)这是做这个最简洁的方法吗?正常循环的输出通常都在一个窗口中,看起来这是以停止的方式循环,直到完成为止。
2)有没有办法在startingNumValue
上设置一个上限我只需要去128就可以了,以后我会担心可能的错误。
3)最后,这可以在游乐场中正常工作,但从for colorItems in colorsArray
行开始,在常规项目中会产生一个Statements are not allowed at the top level
错误,有关处理该错误的最佳方法的任何建议?
Re#2:11种颜色和12种共享使得11 * 12 = 132种可能的组合。你期望如何编码只有128个数字? – 2014-10-05 13:30:50
我明白,我只是想尽可能停止计数。 – 2014-10-05 13:45:28