gpt4 book ai didi

ruby:在类的实例方法中使用模块包含

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

看看下面的代码

initshared.rb
module InitShared
def init_shared
@shared_obj = "foobar"
end
end

我的类.rb

class MyClass
def initialize()
end
def init
file_name = Dir.pwd+"/initshared.rb"
if File.file?(file_name)
require file_name
include InitShared
if self.respond_to?'init_shared'
init_shared
puts @shared_obj
end
end
end
end

include InitShared 不起作用,因为它在方法内部。

我想检查文件,然后包含模块,然后访问该模块中的变量。

最佳答案

而不是使用 Samnang 的

singleton_class.send(:include, InitShared)

你也可以用

extend InitShared

它的作用相同,但与版本无关。它将模块仅包含到对象自己的单例类中。

关于ruby:在类的实例方法中使用模块包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4943055/

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