【发布时间】:2017-02-06 22:53:04
【问题描述】:
红宝石
Ruby 有 each_cons 可以这样使用
class Pair
def initialize(left, right)
@left = left
@right = right
end
end
votes = ["a", "b", "c", "d"]
pairs = votes.each_cons(2).map { |vote| Pair.new(*vote) }
p pairs
# [#<Pair @left="a", @right="b">, #<Pair @left="b", @right="c">, #<Pair @left="c", @right="d">]
斯威夫特
swift 中的相同代码,但没有each_cons 函数
struct Pair {
let left: String
let right: String
}
let votes = ["a", "b", "c", "d"]
var pairs = [Pair]()
for i in 1..<votes.count {
let left = votes[i-1]
let right = votes[i]
pairs.append(Pair(left: left, right: right))
}
print(pairs)
// [Pair(left: "a", right: "b"), Pair(left: "b", right: "c"), Pair(left: "c", right: "d")]
如何才能使这个 swift 代码更短或更简单?
【问题讨论】:
-
这里有一个类似的问题:stackoverflow.com/q/26395766/78336
标签: arrays ruby swift enumerator equivalent