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?(...)で説明されているように、型情報に影響を与える可能性があるため、擬似メソッドです。また、引数としてコンパイル時に既知である必要がある型を受け入れます。