【发布时间】:2014-12-18 09:11:21
【问题描述】:
我想知道如果这些全局变量存在并且可以被其他函数访问,我想知道是否有可能告诉函数使用一个或另一个变量而无需重新编写大量代码。我必须使用全局变量,因为我对葫芦传递变量的限制(如果我错了,请纠正我)。我希望能够调用一个可以获取信息并将其填充到多个全局变量之一的函数。希望是这样的:
def add_five(my_var)
if my_var == "my_cats"
use $my_cats for my_var_nickname
elsif my_var == "my_dogs"
use $my_dogs for my_var_nickname
elsif my_var == "my_birds"
use $my_birds for my_var_nickname
end
my_var_nickname = my_var_nickname + 5
end
$my_cats = 2
$my_dogs = 3
$my_birds = 3
add_five("my_cats")
$my_cats = 7
$my_dogs = 3
$my_birds = 3
感谢您的帮助!
【问题讨论】:
-
你可以写
b = ((stuffy == "foo") ? $A : $B),然后使用b,但是你应该尽量避免使用全局变量。 -
像这样使用全局变量 (
$) 会产生明显的代码异味。 -
不幸的是,我在使用葫芦时没有太多选择。我需要一种在测试步骤之间来回记录和交流数据的方法。
标签: ruby variables dynamic global-variables calabash