我的问题与以下3个代码摘录有关:
类方法代码: start(options = nil)
# File 'lib/rack/server.rb', line 136
def self.start(options = nil)
new(options).start
end
Run Code Online (Sandbox Code Playgroud)
实例方法的代码: #initialize(options = nil)
# File 'lib/rack/server.rb', line 174
def initialize(options = nil)
@options = options
@app = options[:app] if options && options[:app]
end
Run Code Online (Sandbox Code Playgroud)
实例方法的代码: #start
# File 'lib/rack/server.rb', line 229
def start
if options[:warn]
$-w = true
end
...# more lines that are not related to my question
end
Run Code Online (Sandbox Code Playgroud)
我的问题是,options实例方法中的局部变量应该start是@options吗?在我的选项中,由于前2个摘录显示选项作为参数传递给initialize,并使其成为实例变量@options,所以在实例方法启动时,它应该引用它@options,而不是options因为范围options不能可以通过#start访问
在同一个类中有选项的getter方法:
# File 'lib/rack/server.rb', line 180
def options
@options ||= parse_options(ARGV)
end
Run Code Online (Sandbox Code Playgroud)
optionsin #start是对此方法的调用,而不是局部变量.
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |