Elixir if和unless
除了和,Elixir也提供了和这两个宏,让你在只需要检查一种情况时使用:
case
cond
if/2
unless/2
iex> if true do
...> "This works!"
...> end
"This works!"
iex> unless true do
...> "This will never be seen"
...> end
nil
如果传送给的情况返回值是或,中的代码就不会执行并只返回。正相反。if/2
false
nil
do/end
nil
unless/2
它们也支持块:else
iex> if nil do
...> "This won't be seen"
...> else
...> "This will"
...> end
"This will"
注意:在这里和是被当作宏来执行的;而非其它许多语言中一样作为特殊的结构体。你可以在模块文档中查看说明文档和的源代码。模块中定义了诸如之类的操作符和'if_function/2'之类的函数,它们全都默认自动导入并在你的代码中可用。
if/2
unless/2
Kernel
if/2
Kernel
+/2