我有導軌應用程序,型號爲Car
和Wheel
。 而且我有返回不同對象數組的方法。例如計數數組中的類實例
array = [Car.new, Car.new, Wheel.new, Wheel.new, 'home', 'market', 'fun']
如何計算陣列中的Car
實例和Wheel
實例?
我試過array.include?(Car)
和array.count(Car)
他們沒有工作。
我有導軌應用程序,型號爲Car
和Wheel
。 而且我有返回不同對象數組的方法。例如計數數組中的類實例
array = [Car.new, Car.new, Wheel.new, Wheel.new, 'home', 'market', 'fun']
如何計算陣列中的Car
實例和Wheel
實例?
我試過array.include?(Car)
和array.count(Car)
他們沒有工作。
你可以使用Enumerable#grep
來獲取Car
的實例:
array.grep(Car).size
可以計數例如汽車做象下面這樣:的instance_of?
array.count { |e| e.instance_of? Car}
或代替你可以使用kind_of?
如果這聽起來更好。
kind_of?
和is_a?
是同義詞。他們是Ruby的等同於Java的instanceof
。
instance_of?
是不同的,只如果對象是確切類的一個實例返回true
,不是一個子類別
array.count { |e| e.instance_of? Car}
'Enumerable#grep'絕對被低估了,喜歡它! – mudasobwa
我不得不說這是一個非常棒的方法。 – Sajan