Aar*_*ken 14 ruby ruby-on-rails
我正在浏览一些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
Run Code Online (Sandbox Code Playgroud)
*''做什么?那是乘空字符串......?你为什么要这样做呢.
Pet*_*ter 14
这是一种奇怪的语法.这些是等价的:
>> [1, 2, 3] * 'joiner'
=> "1joiner2joiner3"
>> [1, 2, 3].join 'joiner'
=> "1joiner2joiner3"
Run Code Online (Sandbox Code Playgroud)
所以在这种情况下,它将所有条目连接@target成一个字符串,条目之间没有任何内容.
注意:如果您执行类似[1, 2, 3] * 3(使用int而不是a str)的操作,则会获得三个连续的数组副本.
它做同样的事情:
["foo","bar","baz"].join
Run Code Online (Sandbox Code Playgroud)
http://ruby-doc.org/core/classes/Array.html#M002210
根据ZED的建议,如果你想让人混淆并使你的代码更容易出错,你就会使用它.