使用下面的代码作为例子,有人可以给我一个循环方法的单行代码的例子,并向我解释差异?我知道循环有一个短版本和长版本,我认为这对社区搜索(以及我自己的理解)有帮助.
def first_square_numbers(number_of_squares)
squares = []
idx = 0
while idx < number_of_squares
squares.push(idx * idx)
idx = idx + 1
end
return squares
end
Run Code Online (Sandbox Code Playgroud)
这是您可以使用Array构造函数的块功能的地方:
def first_square_numbers(number_of_squares)
Array.new(number_of_squares) { |i| i * i }
end
Run Code Online (Sandbox Code Playgroud)
这将创建所需大小的数组,然后应用提供的块来评估i指定的每个索引位置,在这种情况下,对索引值进行平方.有关详细信息,请参阅Array文档.