不是关键字,不在 Ruby-Doc 中 include 和 extends 是哪种语言结构?

发布于 2024-12-15 08:43:32 字数 459 浏览 2 评论 0原文

除非我错过了这些条目,否则我无法在 Ruby-Doc.org 文档或 Ruby 的关键字列表中找到 include 或extend。我可以找到 obj.extend,但找不到类定义中使用的扩展语句,例如

# add module Foo's methods as class methods of TestClass
class TestClass
  extend Foo
end

# add module Foo's methods as instance methods of TestClass
class TestClass
  include Foo
end

作为语言构造,如果这是正确的术语,那么 include 和 extends 是什么,它们在哪里定义?

如果能够了解这两个语句在 Ruby 语言中是如何实现的,那就太好了。谢谢。

Unless I've missed the entries, I can't find include or extend in the Ruby-Doc.org documentation or in Ruby's keyword list. I can find obj.extend but not the extend statement used in a class definition e.g.

# add module Foo's methods as class methods of TestClass
class TestClass
  extend Foo
end

or

# add module Foo's methods as instance methods of TestClass
class TestClass
  include Foo
end

As a language construct, if that's the proper term, what are include and extend and where are they defined?

It would be nice to understand just how these two statements are implemented in the Ruby language. Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧人 2024-12-22 08:43:32

extend 是一个 Object 方法extend_object 的便捷方法(或多或少)。

include 位于 Module 中,一个包装器围绕append_features

extend is an Object method, a convenience method for extend_object (more or less).

include is in Module, a wrapper around append_features.

岛歌少女 2024-12-22 08:43:32

include是Module类的私有方法,extend是Object类中的方法

include is a private method of the Module class and extend is a method in the Object class

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文