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}