我最近遇到过这段代码
left_params = [:*]*2
right_params = [:*]*2
t[*left_params] = self[*right_params]
其中t需要2个整数参数。我无法弄清楚应该做些什么。
答案 0 :(得分:3)
这是一个象征。与"*".to_sym
一样。
答案 1 :(得分:2)
这是一个包含在数组中的符号。
代码有效,因为数组支持Ruby中的乘法。 E.g。
list = ["hello", "world"]
multiplied_list = list * 2
=> ["hello", "world", "hello", "world"]
答案 2 :(得分:1)
[:*]*2
使用双星符号([:*, :*]
)
t[*left_params] = self[*right_params]
*
这里的意思是解压缩数组,因此解释为t[:*, :*] = self[:*, :*]
。没有*
符号表达式将被解释为t[[:*, :*]] = self[[:*, :*]]