Skip to content

Latest commit

 

History

History
14 lines (10 loc) · 1.49 KB

9.4.工具.md

File metadata and controls

14 lines (10 loc) · 1.49 KB

9.4.工具

Haxe标准库附带一组 工具类来简化宏的使用。这些类最好作为静态扩展使用,通过使用 haxe.macro.Tools ,可以被单独或者完整的带入到上下文中。这些类为:

  • ComplexTypeTools : 允许以一个人类可读的方式打印 ComplexType 实例 。也允许确定相对于 一个 ComplexType的 Type。
  • ExprTools : 允许以一个人类可读的方式打印 Expr 实例。也允许迭代和映射表达式。
  • MacroStringTools : 提供对宏上下文中的字符串和字符串表达式有用的操作。
  • TypeTools : 允许以一个人类可读的方式打印 Type 实例。也提供一些对类型有用的操作,譬如统一(第3.5节)它们,或者得到它们的相应的 ComplexType 。

此外,haxe.macro.Printer 类有以一个人类可读格式打印各种类型的的公共方法。当调试宏的时候可以提供帮助。

花絮:tinkerbell 库 和 为什么使用Tools.hx 我们学习了静态扩展,使用一个模块意味着所有它的类型被带入静态扩展上下文中。事实证明,这样一个类型也可以是一个对其它类型的typedef(第3.1节)。然后编译器将这个类型当作模块的一部分,并相应的延伸静态扩展。 这种“伎俩”最初在 Juraj Kirchheim 的 tinkerbell 库用于相同的目的。Tinkerbell 在它们进入Haxe编译器和标准库很久之前就提供许多有用的宏工具。它仍然是额外的宏工具主要的库,提供其它有用的功能。