混入与模块
使用模块和混入扩展类的功能,无需采用传统继承
混入与模块 是 CoddyKit 上的免费 Ruby Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ruby Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ruby Academy 课程共包含 4 节课。
使用模块共享代码
混入和模块
模块可以在不使用传统继承的情况下组织和复用代码。
混入可以让多个类共享行为,而不要求它们直接相关。
在本课中,您将学习如何在 Ruby 中使用模块和混入。

定义模块
定义模块
使用 module 关键字定义模块,模块不能被实例化。
module Greetings
def say_hello
puts 'Hello!'
end
end引入模块
引入模块
使用 include 将模块方法添加为实例方法。
module Greetings
def say_hello
puts 'Hello!'
end
end
class Person
include Greetings
end
person1 = Person.new
person1.say_hello使用扩展
使用扩展
extend 会将模块方法添加为类方法。
module Greetings
def say_hello
puts 'Hello!'
end
end
class Person
extend Greetings
end
Person.say_hello使用多个模块
使用多个模块
一个类可以引入多个模块,以获得不同的功能。
module Walkable
def walk
puts 'Walking...'
end
end
module Talkable
def talk
puts 'Talking...'
end
end
class Person
include Walkable
include Talkable
end
person1 = Person.new
person1.walk
person1.talk在模块中使用常量
在模块中使用常量
模块可以存储常量,并可使用 :: 访问这些常量。
module MathOperations
PI = 3.14
end
puts MathOperations::PI在模块中封装方法
在模块中封装方法
模块允许定义可供不同类使用的辅助方法。
module Formatter
def format_text(text)
text.upcase
end
end
class Document
include Formatter
end
doc = Document.new
puts doc.format_text('hello')在模块中使用 self
在模块中使用 self
可以在模块中使用 self 定义方法,使其能够被直接访问。
module Helper
def self.greet
puts 'Hello from a module!'
end
end
Helper.greet恭喜您!
恭喜您!
您已经学会了如何在 Ruby 中使用混入和模块。
接下来,您将探索文件操作以及输入和输出操作。

常见问题解答
「混入与模块」课时是免费的吗?
是的 — 「混入与模块」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ruby Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ruby Academy 课程共包含 4 节课。
「混入与模块」这节课中我会学到什么?
使用模块和混入扩展类的功能,无需采用传统继承 你通过在浏览器中直接运行的动手代码来练习 Ruby Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Ruby Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Ruby Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「混入与模块」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Ruby Academy 课中编写并运行代码吗?
能。每节 Ruby Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。