在ruby中有关于“<<”的详细文档/信息可以而且应该使用(见下面的例子)

时间:2010-06-09 17:01:45

标签: ruby

    # use a YML file, which has key , value pairs
    yml_hosts = YAML::load(File.open('hosts.yml'))

      .....
     # for each pair
     yml_hosts.each_pair {|key_hosts , value_hosts|

       ......

     redirect to a String "value_hosts"

         value_hosts << "#{$.} #{line}" if line =~ /recoverable NFE/

有没有更好的方法,因为我使用的条件:

if ! value_hosts.empty?
   to do an action, like sending email, etc
   but value_hosts is never Empty
    so i always get an email, even though, i ONLY want top get an email, if

line =~ /recoverable NFE/

3 个答案:

答案 0 :(得分:1)

这取决于班级。查看文档以了解如何使用它们。

此处适用于StringArray类。

另外,不要忘记你可以覆盖&lt;&lt;如果您认为实施不适合您的目的,请运营商。

答案 1 :(得分:1)

它只是一种通常用于向调用者附加数据的方法,无论是向数组添加新元素,还是将新文本附加到字符串。

也许你问的是如何使用它来符合“Ruby Way”。

我只在将对象添加到集合(数组)时才使用它。


在您的代码示例中,您可以替换此表达式:

! value_hosts.empty?

类似

value_hosts.mailable?

并在mailable?方法中定义规则。

答案 2 :(得分:0)

&LT;&LT;只是另一种方法。

a << 4

相同
a.<<(4)

以与其他方法相同的方式定义,执行和评估。做任何你喜欢的事。