Erlang ++操作员。语法糖,还是单独操作?
Erlang 的 ++
运算符只是 lists:concat
的语法糖,还是完全不同的操作?我试过搜索这个,但不可能通过谷歌搜索“++”并得到任何有用的东西。
Is Erlang's ++
operator simply syntactic sugar for lists:concat
or is it a different operation altogether? I've tried searching this, but it's impossible to Google for "++" and get anything useful.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这就是
lists:concat/1
在 stdlib/lists 模块中的实现方式:其中:
和:
所以,
lists:concat/1
实际上使用了 '++'操作员。This is how the
lists:concat/1
is implemented in the stdlib/lists module:Where:
and:
So,
lists:concat/1
actually uses the '++' operator.X ++ Y
实际上是lists:append(X, Y)
的语法糖。http://www.erlang.org/doc/man/lists.html #append-2
函数lists:concat/2 是一个不同的野兽。该文档对其描述如下:“连接事物元素的文本表示。事物的元素可以是原子、整数、浮点数或字符串。”
X ++ Y
is in fact syntactic sugar forlists:append(X, Y)
.http://www.erlang.org/doc/man/lists.html#append-2
The function lists:concat/2 is a different beast. The documentation describes it as follows: "Concatenates the text representation of the elements of Things. The elements of Things can be atoms, integers, floats or strings."
++
的一个重要用途尚未提及:在模式匹配中。例如:One important use of
++
has not been mentioned yet: In pattern matching. For example:这是完全不同的操作。 ++ 是普通列表追加。 list:concat 采用单个参数(必须是列表),将其元素字符串化,然后连接字符串。
++ : http://www.erlang.org/doc/reference_manual/expressions.html< /a>
列表:concat : http://www.erlang.org/doc/man/列表.html
It's an entirely different operation. ++ is ordinary list appending. lists:concat takes a single argument (which must be a list), stringifies its elements, and concatenates the strings.
++ : http://www.erlang.org/doc/reference_manual/expressions.html
lists:concat : http://www.erlang.org/doc/man/lists.html
大多数列表函数实际上使用“++”运算符:
例如 list:append/2:
源代码定义如下:
Most list functions actually uses the '++' operator:
for example the list:append/2:
The source code defines it as follows: