有没有办法比较 标识符 ?
我知道这听起来非常奇怪和愚蠢,看起来我正在服用毒品,但是这里有:
首先,有一些课程:
class MyClass
end
现在,别名该类有两个常量:
A = MyClass
B = MyClass
显然是A == B
。
现在,有一些运算符Ω,它比较标识符:
A Ω B # => False
A Ω MyClass # => False
A Ω A # => True
另一个例子是:
x = 10
y = 10
x Ω y # => False
x Ω 10 # => False
x Ω x # => True
Ruby中有可能吗?也许是某种meta方法允许你获取给定标识符的字符串名称?
此实际用途
无。好奇。
答案 0 :(得分:0)
好吧,如果标识符是由其名称决定的东西,那么你必须知道如何比较变量的名称。很快,这是不可能的。
虽然有很多问题(有很好的答案)如何做到这一点。我建议你看看this一个。
答案 1 :(得分:0)
如果我理解您的问题,您想知道两个标识符在文本上是否相同。琐碎的答案是,这可以通过检查来源来确定。它也可以在处理语句的词法元素时由解释器确定,但获取该信息取决于实现。我想在执行期间可以查看解释器的符号表,但我怀疑该过程也依赖于实现。我不知道从解释程序中访问解释器内部状态的任何标准ruby代码。