2012-02-21 57 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 
相关问题