dev.to | 📄 原文链接 | 2026-10-22 收录

Ruby 的对象没有方法:方法查找到底怎么走

来源:dev.to — 2026-10-21 · 约 7 分钟阅读

📋 概述

教科书说对象把数据和方法打包在一起,作者从 CRuby 源码否掉这句话:一个对象(RObject)里只有实例变量、内部标志和一个指向类的 klass 指针,一行方法代码都没有。方法全部存在类(RClass)的 m_tbl 哈希表里,调用 user.greet 时 Ruby 顺着 klass 指针找到类,再沿祖先链逐级查表。单例方法之所以只作用于一个对象,是因为 Ruby 在背后插入了一个隐藏的 eigenclass。

🔑 核心要点

💡 金句

“In Ruby, objects contain zero methods.”
译:在 Ruby 里,对象包含零个方法。
← 返回 dev.to 首页