Ruby对象模型总结
参考《Ruby元编程》,元编程,即 用来编写代码的代码 。
- 对象由一组实例变量和一个类的引用组成
- 对象的方法存在与对象所属的类中,类似js中的prototype,在ruby中准确的说,应该是实例方法
- 类本身是Class类的队形,类的名字不过是常量而已
- Class类是Module的子类,模块基本上是由一组方法组成的包。类除了具有模块的特性,还可以被实例化,组织为层次结构
- 常量像文件系统,按照树形结构组织
- 每个类都有一个祖先链,这个链从自己所属的类开始,向上知道BasicObject类结束
- 当调用一个方法时,Ruby首先来到接收者的类,然后向上查找祖先链,直到找到方法,或者到达链的顶端
- 每当类包含一个模块时,该模块会被插入祖先链中,当前类的正上方
- 当调用一个方法时,接收者是self
- 当定义一个模块时,模块是self
- 实例变量永远都会被认定为self
- 任何没有明确指定接收者的方法调用,都当作main调用的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2012-10-18 套接字选项
2012-10-18 IO处理线程
2012-10-18 windows驱动开发
2012-10-18 开启服务和停止服务
2012-10-18 CIOCP自定义帮助函数
2012-10-18 CIOCPServer的数据结构定义及内存池方案
2012-10-18 CIOCPServer类的总体结构