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