从 Erlang 编译器的角度来看,下划线变量和以下划线开头的命名变量之间的确切区别是什么(除了增加代码的可读性)?
例如 _
和 _Var
不同的?
最佳答案
无关变量 _
是 非常特别 匹配任何东西的变量是从不 绑定(bind)到一个值。当我知道那里有东西但我不在乎值(value)是什么并且我永远不会使用时使用它。看到 _
永远不会绑定(bind)它不能在表达式中使用并且编译器将其标记为错误。
像 _Var
这样的变量是完全正常的变量,您可以匹配它们并将绑定(bind)到值,这意味着它们可以在表达式中使用。使用 _
为变量添加前缀是关于意图。编译器通常会警告您有关模式中绑定(bind)但从未使用过的变量,这通常是错误的标志。但是编译器不会警告以 _
为前缀的变量。喜欢 _Var
.目的是我想给变量一个名字,命名是好的,但我知道我永远不会使用它。
请记住 _
确实是唯一的特殊变量,而 _Var
是正常变量,如果使用,则表现相同。如果你觉得反常,那么你可以在所有变量前加上 _
一切仍然有效。
关于variables - Erlang 中的匿名变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13707361/