我目前正在尝试通过 treehouse.com 学习如何快速编码,到目前为止我很享受。我刚刚遇到了我的第一个“代码挑战”,他们称之为我有点挣扎。正如标题所暗示的那样,以一个空数组开始:
var results: [Int] = []
这很好,花花公子。目标是然后编写一个 for in 循环,它找到数字 1-10 的 6 的倍数,然后将这些值附加到数组。我最终确实弄明白了,但我不确定我是否以理想的方式做到了。我会很感激任何批评。我的代码将包含在下面。请记住,我是 Swift 和一般编码的初学者。在此先感谢您的任何建议/提示。
var results: [Int] = []
for multiplier in 1...10 {
let multiples = (multiplier * 6)
print(multiples)
results.append(multiples)
}
代码正确执行并且数组附加了值,但同样,我不确定是否有更好的方法来执行此操作。
最佳答案
对于您的第一个问题,在 for in
中是否有更好的方式或最佳方式将对象追加到数组中?循环已经由@Alexander 解释了,但是如果检查正确,他最终还是按照你正在做的方式做不同的只是他指定了数组的容量,所以你在数组中附加对象的方式看起来很完美但为此您需要编写大量代码。
现在要减少您的代码并以 Swifty 的方式完成您当前正在做的事情,您可以使用内置的 map
的功能。
let result = (1...10).map { $0 * 6 }
print(result) // [6, 12, 18, 24, 30, 36, 42, 48, 54, 60]
第一个(1...10)
将创建 CountableClosedRange
之后我们调用 map(_:)
关闭它。现在map
将依次从这个 CountableClosedRange
中取出每个元素.所以$0
将从 CountableClosedRange
中获取每个参数.现在我们将该元素乘以 6 并从闭包返回结果并根据其返回值生成结果,在这种情况下它将创建 Array
。的 Int
.
关于arrays - 在 Swift 中使用 for in 循环附加数组的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42407215/