我试图弄清楚是否有一个类似于 clojure 中的 delay
的宏来获得一个可以稍后评估的惰性表达式/变量。
用例是 Map.get/3
的默认值,因为默认值来自数据库调用,我希望它仅在需要时才被调用。
最佳答案
Elixir 的宏可用于编写用于条件评估的简单包装函数。我在下面列出了一个要点,尽管它可能是更好/更聪明的方式。
https://gist.github.com/parroty/98a68f2e8a735434bd60
我试图弄清楚是否有一个类似于 clojure 中的 delay
的宏来获得一个可以稍后评估的惰性表达式/变量。
用例是 Map.get/3
的默认值,因为默认值来自数据库调用,我希望它仅在需要时才被调用。
最佳答案
Elixir 的宏可用于编写用于条件评估的简单包装函数。我在下面列出了一个要点,尽管它可能是更好/更聪明的方式。
https://gist.github.com/parroty/98a68f2e8a735434bd60