コンテンツにスキップ

is_a?

擬似メソッドis_a?は、式のランタイム型が別の型を継承または含んでいるかどうかを判断します。例:

a = 1
a.is_a?(Int32)          # => true
a.is_a?(String)         # => false
a.is_a?(Number)         # => true
a.is_a?(Int32 | String) # => true

これは、コンパイラがそれを認識しており、if var.is_a?(...)で説明されているように、型情報に影響を与える可能性があるため、擬似メソッドです。また、引数としてコンパイル時に既知である必要があるを受け入れます。