许多编程语言和框架确实/允许/需要一些我似乎找不到名称的东西,即使计算机科学中可能有一个。他们基本上做的是按名称绑定到变量/对象/类/函数。
弹性示例(“selectAll()”):
<mx:Button click="selectAll()" label="Select All"/>
配合示例(“价格”):
<Injectors target="{QuotePanel}">
<PropertyInjector targetKey="price" source="{QuoteManager}" sourceKey="currentPrice" />
</Injectors>
Java 示例(“Foo”):
Class.forName("Foo")
还有很多其他的例子。你明白了。令我困扰的是,实际上没有办法在编译时验证这一点,而且 IDE 在代码完成、导航和重构方面也无能为力。但这不是重点。
我的问题是,这叫什么?我不认为它是其中之一:动态绑定,名称绑定,反射
更新:不,这不是一个测验,如果听起来像一个,对不起。对于编程来说,这只是“命名那首歌”的问题。
更新:有帮助的答案:
- 来自 Tim Lesher:它被称为“后期绑定”、“动态绑定”或“运行时绑定”。它通过字符串绑定的事实只是一个实现细节......
- 来自 Konrad Rudolph:……这只是解释器的输入。
更新:正如人们正确指出的那样,一些示例是后期绑定,一些是反射,一些是运行时评估(解释)等。但是,我得出结论可能没有名称可以描述它们。这只是一堆确实有共同点的例子,但不足以给它命名。我喜欢“一切都是字符串”的答案,但即使它很有趣,它也不能完全做到公正。