有没有办法在Ruby中有x个相同的参数?
最简单的问题是,你能缩短这个吗?
arr = [0,1,2,3]
if x == 1
return arr
elsif x == 2
return arr.product(arr)
elsif x == 3
return arr.product(arr, arr)
elsif x == 4
return arr.product(arr, arr, arr)
elsif x == 5
return arr.product(arr, arr, arr, arr)
end
Run Code Online (Sandbox Code Playgroud)
您可以按如下方式获得所需的结果.
def prod(arr, x)
return arr if x==1
arr.product(*[arr]*(x-1))
end
arr = [0,1,2,3]
arr == prod(arr, 1) #=> true
arr.product(arr) == prod(arr, 2) #=> true
arr.product(arr, arr) == prod(arr, 3) #=> true
arr.product(arr, arr, arr) == prod(arr, 4) #=> true
arr.product(arr, arr, arr, arr) == prod(arr, 5) #=> true
Run Code Online (Sandbox Code Playgroud)