Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 为什么带有“map”的快捷方式不起作用?_Ruby_Ampersand - Fatal编程技术网

Ruby 为什么带有“map”的快捷方式不起作用?

Ruby 为什么带有“map”的快捷方式不起作用?,ruby,ampersand,Ruby,Ampersand,此代码中的两行: p ["9", "6", "4"] p %w(9 6 4) 返回完全相同的数组[“9”、“6”、“4”]。但是带有映射的第一行: p ["9", "6", "4"].map(&:to_i) 很好,第二个: p %w(9 6 4).map{&:to_i} 给出: syntax error, unexpected & p %w(9 6 4).map{&:to_i} 我还试着用大括号(%w(9 6 4)).map(&:to_I),但没有成功。这

此代码中的两行:

p ["9", "6", "4"]
p %w(9 6 4)
返回完全相同的数组
[“9”、“6”、“4”]
。但是带有
映射的第一行:

p ["9", "6", "4"].map(&:to_i)
很好,第二个:

p %w(9 6 4).map{&:to_i}
给出:

syntax error, unexpected &
p %w(9 6 4).map{&:to_i}
我还试着用大括号
(%w(9 6 4)).map(&:to_I)
,但没有成功。这个代码有什么问题<代码>%w(…)
是字符串数组的快捷方式。为什么它不以同样的方式工作


UPD


好的,我知道了。这是一个愚蠢的问题,但我不能删除这个问题,因为它已经有答案了。我投票决定关闭它。

您的第二个示例是传递一个原始块而不是过程符号

改变

p %w(9 6 4).map{&:to_i}


您的映射调用有所不同。仔细看!谢谢只是一个愚蠢的错误。我投票结束我的问题,因为这对其他人来说毫无意义。无论如何谢谢你!
p %w(9 6 4).map(&:to_i)
p %w(9 6 4).map {|n| n.to_i}