我是ruby的新手,我一直在阅读很多教程。昨天我SWEAR我读了一个在数组上枚举的each
语句(或类似的东西)的例子,然后将数组的子集传递给了块。这是一个例子,但语法错误(或者我使用了错误的方法)所以这实际上不会运行。
arry = ["a", "b", "c", "d", "e"]
arry.each(3) {|a, b, c| puts a+b+c}
如果我使用正确的命令,则会打印:abc bcd cde
;它需要从索引开始的数组的前三个成员,并且当没有足够长的字符串来提供所有三个参数时,枚举结束。我不记得怎么做了,我似乎无法谷歌正确找到它。你们中的任何人都知道吗?
答案 0 :(得分:8)
each_cons(3)
表现得那样。它位于Enumerable(数组包括可枚举),这就是你找不到它的原因。
答案 1 :(得分:2)
你的意思是combination
?
arry.combination(3).each {|a, b, c| p a+b+c}
答案 2 :(得分:1)
each_slice
怎么样?
arry.each_slice(3) {|a,b,c| p a+b+c}