首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"initializer = new configuration“做什么?

"initializer = new configuration“做什么?
EN

Stack Overflow用户
提问于 2013-01-13 01:51:15
回答 2查看 88关注 0票数 0

initializer = new configuration是做什么的?

代码语言:javascript
复制
def self.run(configuration = Configuration.new)
  yield configuration if block_given?
  initializer = new configuration
  initializer.
  initializer
end
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-13 01:58:45

该代码的上下文可能类似于:

代码语言:javascript
复制
class MyClass
  def self.run
  ....

所以self就是MyClass。编写newself.new的快捷方式,意思是MyClass.new,它只是创建类的一个新实例。

票数 0
EN

Stack Overflow用户

发布于 2013-01-13 02:08:06

让我们一步一步地了解这些行。

代码语言:javascript
复制
# It is a definition of a class method which takes one argument
# with a default value.    
def self.run(configuration = Configuration.new)
  # It passes the argument to a block if one was given.
  yield configuration if block_given?
  # It calls method `new` passing the `configuration` as
  # an argument. The returned value is saved in the local
  # variable.
  initializer = new configuration
  # Two following lines are a single expression: a call
  # to method `initializer` of the object pointed to by the
  # variable `initializer`, i.e.
  # 
  #   initializer.send :initializer
  # 
  # No idea why one would break this expression into two lines.
  # The value returned from the call to `initializer` becomes
  # the return value of the analysed method.
  initializer.
  initializer
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14296152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档