metaprogramming - 将引用的 Elixir 代码转换为代码字符串

标签 metaprogramming abstract-syntax-tree elixir

我有一种情况,我希望一些引用的 Elixir 代码是一个原子。如果传入了错误的引用代码,我想引发一个错误并显示错误的代码是什么。

展示我需要的最简单的方法是用一个例子。

quoted_code = quote do: %{}
"%{}" = some_func(quoted_code)

最佳答案

您可以通过 Macro.to_string/2 实现此目的

Macro.to_string(quote do: %{}) #=> "%{}"

关于metaprogramming - 将引用的 Elixir 代码转换为代码字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32861087/

相关文章:

c++ - 专门化变量的值在编译时是否已知/未知

Javascript 元编程

c++ - SFINAE C++ 方法检查

java - 如何在不知道有多少个元素的情况下将列表中的所有元素添加到抽象语法树?

elixir - 如何使用 Phoenix 向特定套接字发送消息

C++11 模板函数特化与 SFINAE 允许进一步特化(错误 : call of overloaded function is ambiguous)

antlr - 在 antlr4 中构建 AST

haskell - 在 Haskell 中导航和修改基于 Free monad 的 AST

elixir - 在 Elixir/Phoenix 中如何为文本输入指定默认值?

Elixir Repo.insert_all/2 和唯一约束