我想知道是否有某种Ruby可以做到这样:
@my_var = "foo"
some_function_i_dont_know_name_of("@my_var")
=> "foo"
Run Code Online (Sandbox Code Playgroud)
好像您在寻找instance_variable_get。从文档:
返回给定实例变量的值,或者
nil未设置实例变量。@常规实例变量应包括变量名称的一部分。NameError如果提供的符号作为实例变量名称无效,则引发异常。字符串参数将转换为符号。Run Code Online (Sandbox Code Playgroud)class Fred def initialize(p1, p2) @a, @b = p1, p2 end end fred = Fred.new('cat', 99) fred.instance_variable_get(:@a) #=> "cat" fred.instance_variable_get("@b") #=> 99