2

我是 ruby​​ 新手,我已经阅读了很多教程。昨天我发誓我读了一个each枚举数组的语句(或类似的东西)的例子,然后将数组的一个子集传递给块。这是一个示例,但语法错误(或者我使用了错误的方法)因此实际上不会运行。

arry = ["a", "b", "c", "d", "e"]

arry.each(3) {|a, b, c| puts a+b+c}

如果我使用了正确的命令,这将打印abc bcd cde:它从索引开始获取数组的前三个成员,当没有足够长的字符串来提供所有三个参数时,枚举结束。我不记得该怎么做,我似乎无法通过谷歌搜索正确的东西来找到它。你们有谁知道吗?

4

3 回答 3

8

each_cons(3)表现得像那样。它在Enumerable中(数组包括 Enumerable),这就是你找不到它的原因。

于 2012-07-05T14:56:03.350 回答
2

you mean something like combination ?

arry.combination(3).each {|a, b, c| p a+b+c}
于 2012-07-05T14:54:24.417 回答
1

怎么样each_slice

arry.each_slice(3) {|a,b,c| p a+b+c}
于 2012-07-05T14:55:14.403 回答