我将使用python作为我正在寻找的示例(如果不了解python,可以将其视为伪代码):
>&燃气轮机&燃气轮机;a=1
&燃气轮机&燃气轮机&燃气轮机;类型(a)
<;键入“int”>;
我知道在ruby中我可以做到:
1.9.3p194:002>;一级
=>;菲克努姆
但这是确定对象类型的正确方法吗
确定对象“类型”的正确方法是调用object.class,这在Ruby世界中是一个不稳定的术语
由于类可以从其他类继承,如果要确定某个对象是否为“特定类型”,可以调用对象。is_a?(ClassName)以查看对象是否为类或从其派生
通常,类型检查不是在Ruby中完成的,而是根据对象对特定方法的响应能力来评估对象,通常称为“Duck类型”。换句话说,如果它响应您想要的方法,那么就没有理由特别关注类型
例如,object.is_a?(String)过于严格,因为另一个类可能实现将其转换为字符串的方法,或者使其行为与字符串的行为相同对象。响应?(:to)将是一种更好的方法来测试所讨论的对象是否符合您的要求