Elixir编程:运行时机制与模式匹配详解
1. Elixir的宏与特殊形式
在Elixir中,借助宏的帮助,很多部分都是用Elixir自身编写的,像 unless 、 if 表达式,以及 defmodule 和 def 等。与其他语言通常使用关键字来实现这些功能不同,Elixir是构建在一个更小的语言核心之上。
宏是编译时的代码转换器。当提到某个东西是宏时,意味着它在编译时运行并生成替代代码。
Elixir编译器会以特殊方式处理一些语言结构,这些结构被称为特殊形式,例如捕获语法 &(...) 、 for 推导式、 receive 表达式和 try 块等。若需详细信息,可查看官方元编程指南。
2. 理解运行时
Elixir运行时是一个BEAM实例。编译完成且系统启动后,由Erlang接管。熟悉虚拟机的一些细节很重要,这样才能理解系统的工作原理。
2.1 运行时的模块和函数
无论以何种方式启动运行时,都会启动一个BEAM实例的操作系统进程,所有操作都在该进程内运行,即使使用 iex shell也是如此。若要查找该操作系统进程,可在进程列表中搜索 beam 。
系统启动后,通常通过调用模块中的函数来运行代码。运行时如何访问代码呢?虚拟机跟踪所有加载到内存中的模块。当调用模块中
超级会员免费看
订阅专栏 解锁全文
44

被折叠的 条评论
为什么被折叠?



