use
和@before_compile
之间有什么区别?两者都可用于将一些代码注入当前模块。
答案 0 :(得分:3)
一个主要区别是调用a==b
中的代码并在模块中调用bool operator<(const Point &other) const
{
return ((this->x < other.x) ||
((this->x == other.x) && (this->y < other.y));
};
后立即注入返回值,同时调用__using__
并在之后注入返回值在模块编译之前,直接执行模块内的所有代码。
一个展示差异的简单程序:
use
输出:
__before_compile__
ExUnit uses @before_compile
定义一个函数,该函数返回所有测试,以使ExUnit运行器可以获取并运行所有测试。