Crystal lang: Тип арифметики, принадлежит Союзу? - PullRequest
0 голосов
/ 29 июня 2018

Я пытаюсь реализовать функцию:

def foo(t : Class)
    if t in Int::Signed
        # ...
    end
end

а как реализовать t in Int::Signed? Где Int :: Подписано

Я знаю is_a?(Int::Signed), но здесь параметр имеет тип Type. Спасибо.

1 Ответ

0 голосов
/ 29 июня 2018
def foo(t : Class)
  if t < Int::Signed
    # ...
  end
end

Class#< добавляется только в Crystal 0.25, если я не ошибаюсь, поэтому убедитесь, что вы обновляете, если он не работает для вас. Существует также Class#<=, который вернул бы true для Int::Signed <= Int::Signed.

...