請問一下... << 的用法??


#1

請問一下…

ruby 的用法 <<

在 class 時可以用做 class method…

但這個…

是什意思?? 類似 linux 的 pipe 概念?? 把 hello 餵給前面的方法當參數??

那怎不用 .method(‘hello’) 舉例…

謝謝


#2

你想得太複雜了,以下demo

class A
  def << (source)
    puts 123
  end
  def +  (source)
    puts 234
  end
  def -  (source)
    puts 345
  end
end
a = A.new
a << 999 #=> 123
a +  123 #=> 234 
a -  123 #=> 345

萬法歸一,Ruby下所有東西都是物件,所有操作都是 methods,所以只需要了解 duck typing(鴨子型別)的真義,去用就對了,而怎樣用就要看它的原型的定義,也就是去看它的 class 然後去查 doc 或是翻 source code 之類的

& << 正確的讀法其實是 push,所以 Array 和 String 都有其蹤影就是了