&引用;“做”;Elixir和Haskell符号
我在elixir中使用了“do/end”符号,或多或少类似于命令块分隔符。(换句话说,&引用;“做”;Elixir和Haskell符号,elixir,do-notation,Elixir,Do Notation,我在elixir中使用了“do/end”符号,或多或少类似于命令块分隔符。(换句话说,do类似于{在类C语言中,end类似于}) 这是对正在发生的事情的准确描述吗?还是更像Haskelldo符号,它为单子构造了语法糖,允许类似命令的编码?是和否。do/结束是关键字列表的语法便利 您以前可能写过if表达式。人们可能期望看到的是 if predicate do true_branch else false_branch end 这也可以使用关键字列表编写。以下是完全相同的 if predi
do
类似于{
在类C语言中,end
类似于}
)
这是对正在发生的事情的准确描述吗?还是更像Haskell
do
符号,它为单子构造了语法糖,允许类似命令的编码?是和否。do
/结束
是关键字列表的语法便利
您以前可能写过if表达式。人们可能期望看到的是
if predicate do
true_branch
else
false_branch
end
这也可以使用关键字列表编写。以下是完全相同的
if predicate, do: true_branch, else: false_branch
使用do
/end
符号可以在编写代码块时消除冗长。以下两个if表达式是等价的
if predicate do
a = foo()
bar(a)
end
if predicate, do: (
a = foo()
bar(a)
)
这与定义函数是一样的。宏还使用关键字列表。这意味着您可以定义如下所示的函数
def foo, do: 5
您可以在指南中了解更多信息