我在一个我想在形式上的Gem中覆盖的方法中找到了这个。该方法如下:
def to_html
input_wrapping do
hidden_field_html <<
label_with_nested_checkbox
end
end
<<
在第三行上做了什么?我知道它对Arrays的作用,但在这里我不知道。
答案 0 :(得分:8)
你可以这样读:
hidden_field_html << label_with_nested_checkbox
label_with_nested_checkbox
是连接到hidden_field_html
末尾的参数 - 他们已经将它分成两行,以便明确&#39;
答案 1 :(得分:1)
在类继承中使用了<
,而不是<<
,前者与方法<<
无关。
Ruby对空间缩进具有高度的容忍度;几乎在任何地方都可以在函数调用和它的参数之间放置任意数量的空格,包括换行符。
电子。 G:
'aaa'.
length
#⇒ 3
和
'aaa'
.length
#⇒ 3
完全有效。
<<
是通用方法,可能会在任何类中被覆盖。这里应该是String#<<
方法, inplace将参数附加到字符串接收器。通常,可以在任意类中覆盖此方法:
class A
attr_accessor :var
def initialize
@var = 5
end
def << value
@var += value
end
end
a = A.new
a.var
#⇒ 5
a << 37
a.var
#⇒ 42