Ruby编程:类型、类与对象的深度解析
1. 类型转换与鸭子类型
1.1 类型转换的注意事项
在进行类型转换时,要格外小心 coerce 方法。尽量将类型转换为更通用的类型,否则可能会陷入类型转换循环,即类型A尝试转换为类型B,而类型B又尝试转换回类型A。
1.2 鸭子类型的争议与应用
鸭子类型在编程界存在一定争议,邮件列表和博客上时常会出现支持或反对该概念的讨论,参与者的观点往往较为极端。但实际上,鸭子类型并非一套严格的规则,而是一种编程风格。在设计程序时,要在严谨性和灵活性之间找到平衡。当你想要限制方法参数的对象类型时,不妨问问自己原因。思考一下,如果期望传入的是字符串,实际得到的却是数组,会出现什么问题。有时这种差异至关重要,但很多时候并非如此。可以先尝试更宽松的类型处理方式,观察是否会出现问题。如果没有问题,那么鸭子类型或许并非毫无用处。
2. Ruby中的类与对象基础
2.1 类与对象的结构
Ruby中的对象由三部分组成:一组标志、一些实例变量和一个关联的类。而Ruby的类本身也是 Class 类的对象,它包含了对象的所有属性,还有一个方法列表和一个指向超类的引用。在Ruby中,所有方法调用都有一个接收者(默认是 self ,即当前对象)。Ruby通过查看接收者类的方法列表来查找要调用的方法。如果在接收者的类中找不到该方法,它会在包含的模块中查找,然后在超类、超类的模块以及超类的超类中依次查找。如果在接收者的类及其所有祖先类中都找不到该方法,Ruby会在原始接收者上调用 m
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



