预处理、指令和混入之间有啥区别?
Posted
技术标签:
【中文标题】预处理、指令和混入之间有啥区别?【英文标题】:What is the difference between preprocessing, directives and mix ins?预处理、指令和混入之间有什么区别? 【发布时间】:2015-07-07 00:50:08 【问题描述】:我正在使用开发人员工具,您可以在其中导出 html。它还保存为自己的文件格式(不是 html)。使用这个工具,我可以导出、替换和生成代码,但我不确定我正在做的每件事的术语是什么。
在开发人员工具中,我有一个设计视图和一个导出为 HTML 的选项。根据其中一个面板中的用户设置选项,我将在 HTML 生成的标记代码周围添加 附加 代码。当用户单击导出时,这会在工具的代码中发生。这是预处理指令吗?
稍后用户保存他们的文件,我将这些信息(在导出时添加附加代码的说明)保存到文本文件中。这叫指令吗?
什么是混音?
我希望这是有道理的。
此外,该工具生成 HTML 标记,并在上面的示例中插入一些代码。这是编译器吗?
更新: 这与具有 Flash Player 虚拟机和 ActionScript 的项目有关,因此带有“mixins”、“预处理”和“[编译器]指令”等词的语言可以本地化到该字段。我猜这就是人们投票反对的原因。我认为如果有人对原始帖子投反对票,则应该要求他们发表评论。
【问题讨论】:
4 反对票?你能在投票前发表评论吗? 你的句子有时会因为漏词而有点难以破译,而且问题的表述也不是很清楚。无论如何,这些问题似乎是合理的。 我说英语不好?那不可能! ...但真的谢谢。它有助于。我会努力的。 【参考方案1】:我会尝试回答一些我认为您会问的问题。
什么是 ActionScript 3 上下文中的预处理?
预处理意味着执行一种预编译宏语言,该语言在代码被编译之前对其进行修改。我能找到的最接近 ActionScript3 预处理器的是 Flex SDK 的 MXMLC 编译器,does support something equivalent to #define
s。
这就是您所说的编译器指令,如 MXMLC's documentation on conditional compilation 所示。
什么是混音?
According to Adobe, "mixin 提供了一种简单的方法,可以在不使用继承的情况下将现有类的方法动态添加到自定义类中。您在类中混合,然后将该类的成员添加到自定义的原型对象中类。”
根据其中一个面板中的用户设置选项我将围绕 HTML 生成的标记代码添加其他代码。当用户单击导出时,这会在工具的代码中发生。 这是预处理指令吗?
根据此附加代码的外观,如果它只是常规的 ActionScript3 代码,您可以将其称为模板代码。如果您要添加的是现有类的附加方法,请将其称为 mixins。如果您只是添加额外的代码,您可以将其称为 mixin 并与 Adobe 的术语冲突,这可能是不可取的。
您的工具本身可以被视为一种预处理器 - 我希望预处理器使用代码中给出的提示(例如,使用特定的预处理器指令,如 #define
,或 ActionScript3 代码本身) 来转换代码。
关于你的问题的表述,我觉得它问得有点倒退。我可能会像这样表达同样的问题(假设我理解正确):
在 ActionScript3 中,preprocessing、directives 和 mixins 这三个术语有什么区别?我问的原因是因为我正在制作一个开发人员工具,它接收 ActionScript3 代码并在其周围添加额外的代码。对于这个工具的GUI,我必须参考这段代码,我不确定这三个词是否符合。
【讨论】:
以上是关于预处理、指令和混入之间有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
ADD 和 COPY Dockerfile 指令有啥区别? [复制]