【发布时间】:2014-08-07 04:59:12
【问题描述】:
在 PHP 中,我可以这样做:
$a = 1;
$c = 'a';
$$c = 2;
//now $a == 2
在 ruby 中是否有任何等价物?我的意思是,有什么简单的方法可以在这样的执行过程中取消引用变量吗?我宁愿不使用 eval,因为它看起来很乱——我已经确定 eval 不能作为字符串的方法调用。
【问题讨论】:
-
@IvayloStrandjev 你的链接是关于实例变量的
-
@Geoffroy 这就是为什么我没有发布答案而是发表评论的原因。这两个问题是相关的,该链接提供了有关所提问题的一些见解。
-
重要的一点是,即使有一些方法可以在 ruby 中使用“变量”,您真的不应该这样做,因为它可能导致潜在的严重安全问题, 相当慢并且总体上是糟糕的设计,导致数据访问不明确并促进全局变量(这是有史以来最糟糕的事情)。相反,您应该将数据放入哈希中,即
data = {:a => 1},然后您可以将其作为data[:a]访问。
标签: ruby pointers eval dereference