做什么:*代表红宝石

时间:2014-02-15 15:45:42

标签: ruby

我最近遇到过这段代码

left_params  = [:*]*2
right_params = [:*]*2  
t[*left_params] = self[*right_params]

其中t需要2个整数参数。我无法弄清楚应该做些什么。

3 个答案:

答案 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[[:*, :*]]