展开标题:如果实例变量尚未初始化,如何访问实例变量(@ivar
)以导致异常?
最佳答案
但是,没有内置的方法提供与实例变量相关的功能;
因为在您的示例中Hash#[]
类似于@ivar
(或instance_variable_get(:@ivar)
),所以Hash#fetch
将类似于
def instance_variable_fetch(sym)
raise(NameError, "instance variable not found: #{sym}") unless instance_variable_defined?(sym)
instance_variable_get(sym)
end
例子:
@var = 42
instance_variable_fetch(:@var)
#=> 42
@ivar = nil
instance_variable_fetch(:@ivar)
#=> nil
instance_variable_fetch(:@other_var)
#=> NameError: instance variable not found: @other_var
关于ruby - hash [key]是hash.fetch(key),就像@ivar是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54296485/