2012-02-21 83 views
1

Ruby爲什麼沒有is_an?方法?例如:爲什麼Ruby沒有is_an?方法?

[].is_an? Array? 
+5

當您在需要「an」的地方鍵入「a」時,您正在尋找'an'而不是現有的'a',這很具有諷刺意味。 – sawa 2012-02-21 09:30:32

+0

檢查[here](http://ruby-doc.org/core-1.9.3/Object.html#method-i-kind_of-3F)。 – xdazz 2012-02-21 08:26:48

+0

有時候,這些小工具會在Ruby on Rails ActiveSupport庫中結束。有人試圖添加它,但它沒有被維護者拉入:https://github.com/rails/rails/pull/6243。 – 2016-10-26 12:53:22

回答

2

Ruby有is_a?已經做哪些你想要的東西。如果你願意,你可以用3行代碼製作is_an?,但我認爲這是一個壞主意。標準Ruby庫中已經有太多的同義詞,這使得學習更難。我最近才知道Enumerable的地圖和收集是一樣的。

+1

我個人認爲這不會有害處。它有助於編寫更多可讀代碼。 – 2012-02-21 08:30:45

+0

如果你喜歡,你可以在一行中使用別名。 – three 2012-02-21 09:13:31

5

您可以考慮使用is_a?而不是如:

if [].is_a? Array 
    puts "Array" 
end 

如果你真的需要有is_an?你也可以用別名來實現它:

class Object 
    alias :is_an? :is_a? 
end 

if [].is_an? Array 
    puts "Array" 
end 
相關問題