Elixir 要求

2023-12-15 14:27 更新

Elixir提供了宏作为元编程的机制(编写能生成代码的代码).

宏是在编译时执行和扩展的代码块.这意味着,为了使用一个宏,我们要保证它的模块和实现都在编译过程中可用.这通过​require​命令完成:

iex> Integer.is_odd(3)
** (CompileError) iex:1: you must require Integer before invoking the macro Integer.is_odd/1
iex> require Integer
Integer
iex> Integer.is_odd(3)
true

在Elixir中,Integer.is_odd/1被定义为一个宏,所以它可以被用作一个守卫.这意味着,为了调用Integer.is_odd/1,我们需要先要求Integer模块.

通常一个模块不需要在使用前被要求,除非我们想要使用那个模块中的宏.试图调用一个没有载入的宏将会抛出一个错误.注意像alias命令一样,require也确定了语法范围.我们将在下一章中更多地讨论宏.

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号