Ruby是否提供了获取作为字符串文字传递给函数的参数的任何方法?
换句话说,如果我有以下功能......
def my_func(arg)
...
end
我调用my_func(obj.prop),我希望能够从 my_func
...
"obj.prop"
我知道Ruby可以通过元编程来做一些非常时髦的事情,但我还没有找到一种能够做到这一点的方法。
答案 0 :(得分:0)
这是不可能的。
Ruby是一种严格的语言,这意味着在传递之前,参数会被评估。 IOW,即使在方法开始执行之前,有关参数生成方式的所有信息都会丢失。
无法访问特定方法,表达式或任何其他代码段的Ruby源代码。实际上,由于所有Ruby实现都很容易与其他语言集成(YARV,mruby和Rubinius中的本机扩展和FFI,JRuby中的任何JVM语言,Opal中的ECMAScript,IronRuby中的任何CLI语言,本机扩展和Smalltalk in MagLev,等等,甚至可能没有是特定代码片段的Ruby源代码。
您想获取字符串文字。文字是语言语法的一部分,它们甚至不存在于运行时。它们不仅不存在于运行时,而且还是的想法"运行时"和"字面"从根本上说是不相容的。您的要求不仅是不可能的,而且是非感性的。没有可能的语言,甚至没有假设的语言,没有可能的世界,你的问题甚至可以使有意义,更不用说上班了。