我在法老Smalltalk中使用了语用,并且对它们的工作原理有了一个概念,并且看到了在法老中使用它们的例子。
我的问题是:
我已经找到了一篇关于他们历史的有趣文章:The history of VW Pragmas。
发布于 2013-11-13 17:43:19
您必须将其视为附加到CompiledMethod的注释,或者如果您希望将其视为附加属性。
然后,由于反射,一些工具可以遍历其他编译的方法,收集具有某些注释(属性)的方法,并应用一些特殊的处理方法,比如构造菜单、首选项列表或其他UI,调用标记为#初始值的每个类方法,或者某种机制可以遍历堆栈,直到方法被标记为#exceptionHandler .
有很多种可能性,取决于你发明你自己的元财产.
编辑
对于第二点,我不知道,它必须是一种能够枚举方法并可以将属性附加到它们的语言。
第三点也很难回答。实际上,我想说的是,您将使用一些已经存在的注释,但很少创建新的注释,除非您试图创建一个用于异常处理的新框架,或者一个用于GUI的新框架(您希望注册一些已知的事件或一些处理程序.)。我看到的主要用法是扩展,用不相关的部分组成一个应用程序,比如主菜单。相对来说,引入声明性挂钩似乎是一种相对非侵入性的方法--与覆盖著名方法TheWorld>>mainMenu的非常侵入性的方法相比。它也比在类初始化/unoading时通过传统消息发送强制注册/取消注册要轻一些。另一方面,魔法更隐蔽一些。
https://stackoverflow.com/questions/19960224
复制相似问题