(译) Understanding Elixir Macros, Part 4 - Diving DeeperElixir Macros 系列文章译文
[1] (译) Understanding Elixir Macros, Part 1 Basics
[2] (译) Understanding Elixir (译) Understanding Elixir Macros, Part 4 - Diving Deeper
[5] (译) Understanding Elixir Macros, Part 5 如果每个人都设计这样的结构, 每个 Elixir 项目都会很快地变成自定义语言的大锅汤. }, {:b, [if_undefined: :apply], Elixir}]},
{:<, [context: Elixir, import: Kernel],
[{:a, [if_undefined : :apply], Elixir}, {:b, [if_undefined: :apply], Elixir}]}
]}
所以实际上我们的 guard head 实际上是这样的: {:when, _ Cloud-Cloudys
2023-10-21
5150
(译) Understanding Elixir Macros, Part 1 BasicsElixir Macros 系列文章译文
[1] (译) Understanding Elixir Macros, Part 1 Basics
[2] (译) Understanding Elixir 虽然我确信编写宏不是很难, 但与普通的 Elixir 代码相比, 它确实需要更高视角的关注. 因此, 我认为这了解 Elixir 编译器的一些内部细节是非常有帮助的. 如果你很熟悉 Elixir 和 Erlang, 但对宏还感觉到困惑, 那么这些内容很适合你. 如果你刚开始接触 Elixir 和 Erlang, 那么最好从其它地方开始. 编译器会基于原始 Elixir 代码的 AST 展开为最终版本.
另外, 从这个图中可以得到另一个重要结论, Elixir 在生成了二进制之后, 元编程就停止了. 创建 AST 片段
什么是 Elixir AST? 它是一个 Elixir Term, 一个深度嵌套的层次结构, 用于表述一个语法正确的 Elixir 代码. 为了说得更明白一些, 举个例子. Cloud-Cloudys
2023-10-21
9600
