【发布时间】:2016-09-23 13:43:02
【问题描述】:
我最近决定学习 Elixir。来自 C++/Java/JavaScript 背景,我在掌握基础知识方面遇到了很多麻烦。这听起来可能很愚蠢,但返回语句如何在 Elixir 中工作?我环顾四周,似乎它只是函数的最后一行,即
def Hello do
"Hello World!"
end
这个函数会返回“Hello World!”吗?还有其他方法可以返回吗?还有,怎么早回来?在 JavaScript 中,我们可以写这样的代码来判断一个数组是否有特定的值:
function foo(a){
for(var i = 0;i<a.length;i++){
if(a[i] == "22"){
return true;
}
}
return false;
}
这在 Elixir 中如何工作?
【问题讨论】:
-
这是另一个关于如何提前返回的示例:elixir-examples.github.io/examples/return-early
-
@Brandon,谢谢伙计,所以在那个例子中,如果“some_condition”为假,它会输出“do_something()”输出的值?
-
这根本不是一个愚蠢的问题。当一个函数用于命令式语言时,很难习惯每个函数都返回计算的最后一个值的概念。坚持下去——一旦你习惯了每个函数都返回一个值的想法,你会发现你的函数会变得更有凝聚力。
-
@wateriswet 没错,它会返回 do_something() 的值