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?(...) 中所述。此外,它接受一个 类型 作为参数,该类型必须在编译时已知。