gpt4 book ai didi

ruby - 初始化 ruby​​ 单例

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

我正在尝试用 ruby​​ 初始化一个单例。这是一些代码:

class MyClass
attr_accessor :var_i_want_to_init

# singleton
@@instance = MyClass.new
def self.instance
@@instance
end

def initialize # tried 1. initialize, 2. new, 3. self.initialize, 4. self.new
puts "I'm being initialized!"
@var_i_want_to_init = 2
end
end

问题是从未调用初始化,因此从未初始化单例。我尝试将 init 方法命名为 initialize、self.initialize、new 和 self.new。没有任何效果。 “我正在初始化”从未被打印出来,当我用

实例化时,变量也从未被初始化
my_var = MyClass.instance

如何设置单例以使其初始化?帮助表示赞赏,

扒春

最佳答案

有一个 standard library for singletons :

require 'singleton'

class MyClass
include Singleton
end

要修复您的代码,您可以使用以下内容:

class MyClass
attr_accessor :var_i_want_to_init

def self.instance
@@instance ||= new
end

def initialize # tried 1. initialize, 2. new, 3. self.initialize, 4. self.new
puts "I'm being initialized!"
@var_i_want_to_init = 2
end
end

关于ruby - 初始化 ruby​​ 单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10733717/

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