gpt4 book ai didi

ruby - block 中的函数 def 完成了什么?

转载 作者:数据小太阳 更新时间:2023-10-29 08:52:22 25 4
gpt4 key购买 nike

我是 Ruby 的新手,但我遇到了这个奇怪的要点,其中函数 def 代码写在 do block 代码中。这样做的目的是什么:

 module Hi
def self.included(base)
base.class_eval do
def hello; puts 'Hello' end
end
end
end

我确定在继续之前我应该​​先弄清楚我的 Mixin 概念(我正在深入研究 mixin 等等)但是 def :hello 在 do-block 中的使用方式让我感到困惑

最佳答案

这段代码的作用是在包含此模块的任何类中定义一个方法(hello)。鉴于此,以下两段代码(大致)等效:

class Foo
include Hi
end

# ...is equivalent to...

class Foo
def hello
puts 'Hello'
end
end

您会找到 Module#class_eval 的文档和 Module.included内容丰富。

关于ruby - block 中的函数 def 完成了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9663178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com