【发布时间】:2022-01-03 02:11:27
【问题描述】:
我是Erlang 的新手,但对Elixir 有一些经验。当我在尝试 RabbitMQ 的 RAFT 实现时一直在尝试学习 Erlang,ra,我遇到了line in erlang Machine = {simple, fun erlang:'+'/2, 0},
Machine = {simple, fun erlang:'+'/2, 0},
所以,在{simple, fun erlang:'+'/2, 0}, 中,这看起来像是在创建一个元组。元组中的第一项是名为simple 的atom,下一项是function,最后一项是integer:
{atom, function, integer}
我不明白fun erlang:'+'/2 函数在这种情况下的作用。 /2 表示它需要 2 个参数。 '+' 只是一个加法运算符吗?如果是这样,这是一个简单的sum 函数吗?我想多了? erlang 文档说"An atom is to be enclosed in single quotes (') if it does not begin with a lower-case letter or if it contains other characters than alphanumeric characters, underscore (_), or @."
在我看到此代码的给定context 中,它声明State machine that implements the logic,这使我将此状态机理解为以原子simple 命名,执行加法并将结果保存在元组的最后一项。
是否相当于在灵药中做&:erlang.+/2? Doc Reference
任何上下文都会有帮助。
【问题讨论】:
-
是的,就是加法运算符。
-
为什么是单引号?
-
因为它不是以小写字母开头的。