📅  最后修改于: 2023-12-03 15:27:28.941000             🧑  作者: Mango
each_cons()
函数是 Ruby 中的一个可枚举方法,用于在一个枚举对象中获取连续指定长度的元素组成的子数组。
enumerable.each_cons(n) { |array| block }
其中,enumerable
是一个任意的可枚举对象,n
是指定的子数组长度,block
是一个接收获取到的子数组为参数的块。
arr = [1, 2, 3, 4, 5]
arr.each_cons(3) { |sub_arr| p sub_arr }
输出结果为:
[1, 2, 3]
[2, 3, 4]
[3, 4, 5]
each_cons()
方法返回一个枚举器对象,因此可以链式调用其他的 Enumerable 方法。
arr = (1..10)
arr.each_cons(3).select { |sub_arr| sub_arr.sum > 10 }
输出结果为:
[[8, 9, 10]]
另外,each_cons()
方法还可以用于不同类型的可枚举对象。
str = "abcdefghijk"
str.each_cons(4) { |sub_str| p sub_str }
输出结果为:
"abcd"
"bcde"
"cdef"
"defg"
"efgh"
"fghi"
"ghij"
"hijk"
each_cons()
方法是一个方便处理连续数据的工具方法,可以用于更加复杂的数据处理场景中。同时,它也展现了 Ruby 中内置方法的方便和强大,为 Ruby 开发者提供了更高效的开发体验。