Почему у Руби нет is_an?метод? - PullRequest
1 голос
/ 21 февраля 2012

Почему в Ruby нет метода is_an??Например:

[].is_an? Array?

Ответы [ 5 ]

6 голосов
/ 21 февраля 2012

Вы могли бы рассмотреть возможность использования is_a? вместо, например:

class Object
  alias :is_an? :is_a?
end

if [].is_an? Array
   puts "Array"
end
5 голосов
/ 21 февраля 2012

Я думаю, что метод, который вы ищете, это kind_of?

Смотрите здесь:

http://ruby -doc.org / ядро-1.9.3 / object.html # метод-я-kind_of-3F

2 голосов
/ 21 февраля 2012

Ruby уже имеет is_a?, что делает то, что вы хотите. Вы можете сделать is_an? в 3 строки кода, если хотите, но я думаю, что это плохая идея. В стандартной библиотеке Ruby уже слишком много синонимов, которые усложняют процесс изучения. Я только недавно узнал, что карта и сбор Enumerable одинаковы.

0 голосов
/ 13 ноября 2018

Создайте инициализатор псевдонима is_an?.

Мы закончили тем, что создали небольшой инициализатор для добавления этого псевдонима в наш проект, так как мы в основном говорим по-английски и предпочитаем грамматическую корректность is_an? дает:

config/initializers/is_an.rb

# Aliases `is_an?` to `is_a?` so we correctly use `is_an?( Array )` instead of `is_a?( Array )`
#
# Surprisingly, not in the Ruby core, but it almost made it into the Rails core.
# For the discussion, see https://github.com/rails/rails/pull/6243
#
class Object
  alias is_an? is_a?
end
0 голосов
/ 21 февраля 2012
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...