Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ruby中将字符串转换为对变量的引用?_Ruby_Cucumber - Fatal编程技术网

如何在Ruby中将字符串转换为对变量的引用?

如何在Ruby中将字符串转换为对变量的引用?,ruby,cucumber,Ruby,Cucumber,我需要能够将变量的名称传递到表达式(cucumber)中,并且希望能够将该字符串转换为变量的引用(即,不是副本) e、 g 由于Ruby是一种反思性语言,我确信我所尝试的是可能的,但我还没有破解它。可以帮助你吗?可以帮助你吗 课堂参考 def初始化(变量名称,变量) @getter=eval“lambda{{var{u name}”,vars @setter=eval“lambda{v}{var|u name}=v}”,vars 结束 def值 @getter.call 结束 def值=(新的_

我需要能够将变量的名称传递到表达式(cucumber)中,并且希望能够将该字符串转换为变量的引用(即,不是副本)

e、 g

由于Ruby是一种反思性语言,我确信我所尝试的是可能的,但我还没有破解它。

可以帮助你吗?

可以帮助你吗

课堂参考 def初始化(变量名称,变量) @getter=eval“lambda{{var{u name}”,vars @setter=eval“lambda{v}{var|u name}=v}”,vars 结束 def值 @getter.call 结束 def值=(新的_值) @setter.call(新值) 结束 结束 这是我从你那儿弄来的。祝你好运

课堂参考 def初始化(变量名称,变量) @getter=eval“lambda{{var{u name}”,vars @setter=eval“lambda{v}{var|u name}=v}”,vars 结束 def值 @getter.call 结束 def值=(新的_值) @setter.call(新值) 结束 结束
这是我从你那儿弄来的。祝你好运

一个解决方案可能是将内容包装到一个数组中。可以很容易地通过引用传递

irb(main):001:0> my_var = [10]
=> [10]
irb(main):002:0> my_var_copy = my_var
=> [10]
irb(main):003:0> my_var[0] = 55
=> 55
irb(main):004:0> my_var_copy
=> [55]
看这里-


(有点离题,但给了我解决方案的初步想法)这里-

一个解决方案可能是将事物包装到一个数组中。可以很容易地通过引用传递

irb(main):001:0> my_var = [10]
=> [10]
irb(main):002:0> my_var_copy = my_var
=> [10]
irb(main):003:0> my_var[0] = 55
=> 55
irb(main):004:0> my_var_copy
=> [55]
看这里-


(有点离题,但给出了解决方案的初步想法)这里-

很接近,但感觉这只是一种稍微干净的评估方法。据我所知,它仍然没有返回对对象本身的引用,这是一个惊人的巧合,尽管这正是我对控制器进行RSpec测试所需要的:)不,你是对的。它不会返回引用,而是设置或获取实例变量的值。据我所知,这就是你所需要的。无论如何,至少它在某种程度上帮助了你:-)它很接近,但感觉它只是一种稍微干净一点的评估方式。据我所知,它仍然没有返回对对象本身的引用,这是一个惊人的巧合,尽管这正是我对控制器进行RSpec测试所需要的:)不,你是对的。它不会返回引用,而是设置或获取实例变量的值。据我所知,这就是你所需要的。无论如何,至少它在某种程度上帮助了你:-)非常好-这正是我所期望的,谢谢你。它仍然不是100%,因为我需要使用ref_name.value,但它比我得到的要好。我上面提供的链接有ref_name.value的示例用法。它应该有你需要的。很好-这正是我想要的,谢谢。它仍然不是100%,因为我需要使用ref_name.value,但它比我得到的要好。我上面提供的链接有ref_name.value的示例用法。到目前为止,我一直在使用散列,并通过基于字符串的键引用变量。这并不像我想得到的那么接近,但是Job确实如此,我到目前为止一直在使用散列,并通过基于字符串的键引用变量。它不像我想的那么近,但能胜任这项工作
irb(main):001:0> my_var = [10]
=> [10]
irb(main):002:0> my_var_copy = my_var
=> [10]
irb(main):003:0> my_var[0] = 55
=> 55
irb(main):004:0> my_var_copy
=> [55]