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?(...) 中所述。 此外,它接受一個必須在編譯時已知的 型別 作為其引數。