0

我需要使用 for 循环填充一个数组(已经声明和初始化),以便创建确定数量的项目。

我最终得到以下代码:

    func createValues() -> Array<Int> {

        let usableRange:Range = 6..<11;

        var arrayOfValues: Array<Int>=[]; //Array declared and initialized

        for i in 0..<10 {

            arrayOfValues.append(random(usableRange));

            print(arrayOfValues[i]);

        }

        return arrayOfValues;
    }

这段代码符合我的期望。但是,一旦我注释掉该行

 print(arrayOfValues[i]);

Xcode 抛出以下警告:

从未使用过不可变值“i”;考虑用“_”替换或删除它

如果我接受该建议,则代码可以工作,但不如以前那么好。

我只是从 Obj-C 过渡到 Swift,我真的不知道应该做的正确方法是什么。任何帮助,将不胜感激。提前致谢。

PS我知道我不再需要分号了,但是旧习惯很难改掉,我猜......

4

4 回答 4

1

既然你不使用 i,你可以写

for _ in 0 ..< 10

_ 表示“是的,有一个价值,但我不在乎”,在这里和许多其他情况下。

于 2018-04-29T14:27:51.000 回答
0

如果您只想为您的代码提供一个很好的替代方案,我将为您提供:

var i: Int = 0

while i < 10 {

  arrayOfValues.append(random(usableRange))
  i += 1

}
于 2018-04-29T13:30:20.517 回答
0

如果目标是在给定范围内生成一个随机数数组,我建议您直接生成它。不需要for循环。

let usableRange = UInt32(6)..<UInt32(11)
let arr = (0..<10).map { _ in Int(
    arc4random_uniform(usableRange.upperBound - usableRange.lowerBound) 
    + usableRange.lowerBound
)}
于 2018-04-29T14:57:55.987 回答
0

Array有一个指定的初始化器,它初始化具有给定大小和重复值的数组:

let values = Array(repeating: "VALUE", count: 5)
print(fiveZs)
// Prints "["VALUE", "VALUE", "VALUE", "VALUE", "VALUE"]"

资料来源:苹果文档

于 2018-04-29T15:12:29.277 回答