【问题标题】:What is difference between Class.new.method vs obj = Class.new obj.methodClass.new.method 与 obj = Class.new obj.method 之间有什么区别
【发布时间】:2023-01-18 15:17:48
【问题描述】:

我在 Rails 代码中使用 initialize 初始化实例变量。

class Example
 def initialize
   @foo = 'Bar'
 end

 def show
  return @foo
 end
end

此代码位于 sidekiqExample.new.show 中,多次被调用并返回 nil

但是如果我们将这个创建实例和方法调用的代码改成两行,它就会返回 'Bar'

obj = Example.new
obj.show()

这两种方法有什么区别

【问题讨论】:

  • 按预期工作。为两个表达式返回 "Bar"

标签: ruby-on-rails ruby


【解决方案1】:

当您在 ruby​​ 控制台中调用这两种方法时,它们将返回相同的“Bar”。 sidekiq 内部调用的代码在这里产生了问题。 在这里尝试针对“无”问题的建议:Class instance variable is coming as `nil` in instance method

【讨论】:

    猜你喜欢
    • 2013-03-22
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-09
    • 1970-01-01
    • 2012-10-03
    相关资源
    最近更新 更多