Reflection 是否有任何语言可以获取局部变量或传递参数的名称?

Reflection 是否有任何语言可以获取局部变量或传递参数的名称?,reflection,Reflection,我正在寻找一种“了解”自己的语言 因为我不知道是否有这样一种语言或它是什么,所以我在这里使用Java作为例子 例如,它可以获取为局部变量定义的“名称” String google = "http://google.com"; System.out.println(google.???); // it prints `google` 或获取传递的参数名称: void hello(String name) { System.out.println(name.???); } String j

我正在寻找一种“了解”自己的语言

因为我不知道是否有这样一种语言或它是什么,所以我在这里使用Java作为例子

例如,它可以获取为局部变量定义的“名称”

String google = "http://google.com";
System.out.println(google.???);
// it prints `google`
或获取传递的参数名称:

void hello(String name) {
   System.out.println(name.???);
}

String jeff = "My name is Jeff";
hello(jeff);
// it prints `jeff`, not `My name is Jeff`
有任何语言有这样的力量吗?

这叫做“反射”。 大多数现代语言都有这样的特点

  • PHP:
  • 爪哇:

搜索java和内省。您可以获取属性的名称和类型、方法名称和参数。Objective-c也有类似的功能。

我不懂PHP,但我知道java无法完成我的示例中的任务。不,java无法获得局部变量的名称,或者我的示例中传递参数的名称。如果您想知道像示例中那样传递参数的名称,那么您必须定义自己的具有“名称”的类我正在寻找一种有内置支持的语言。这里有几个例子。许多基于解释器的语言(Lisp/Scheme)提供了更多功能。