Sim*_*obi 2 ruby instance-variables
要扩展标题:@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
Run Code Online (Sandbox Code Playgroud)
例:
@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
Run Code Online (Sandbox Code Playgroud)