ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

Crystal - 型の判定方法 【is_a?】

Ruby ライクなプログラミング言語 crystal について勉強してます。

今回は型の判定方法についてです。
crystal で is_a? というメソッドを使うと、型の判定が行えます。
実際に使うと以下のような感じです。

ユニオン型の変数で確認してみます。

icr(0.33.0) >   if 1 + 2 == 3
icr(0.33.0) >     a = 1
icr(0.33.0) >   else
icr(0.33.0) >     a = nil
icr(0.33.0) >   end
 => 1
icr(0.33.0) > typeof(a)
 => (Int32 | Nil)
icr(0.33.0) > a
 => 1

a に数値を入れて is_a? を使ってみます。
Nil で判定すると false で Int32 で判定すると true になります。

icr(0.33.0) > a.is_a?(Nil)
 => false
icr(0.33.0) > a.is_a?(Int32)
 => true

a に Nil を入れて is_a? を使ってみます。
Nil で判定すると true で Int32 で判定すると false になります。

icr(0.33.0) > a = nil
 => nil
icr(0.33.0) > a.is_a?(Int32)
 => false
icr(0.33.0) > a.is_a?(Nil)
 => true