我正在浏览一些Rails源代码,并发现
# File vendor/rails/activesupport/lib/active_support/vendor/builder-2.1.2/builder/css.rb,line 129 129: def target! 130: @target * '' 131: end
*“做什么?是乘以一个空字符串吗?你为什么要这么做
解决方法
这是一个奇怪的语法.这些是等效的
>> [1,2,3] * 'joiner' => "1joiner2joiner3" >> [1,3].join 'joiner' => "1joiner2joiner3"
所以在这种情况下,它将@target的所有条目连接到一个字符串中,条目之间没有任何内容.
注意:如果你做了像[1,3] * 3(使用int而不是str),你会得到三个连接的数组副本.