我正在尝试做这样的事情:
test(Tester) ->
case Tester of
start -> X = 4
ok -> X = X + 5,
Y = X/5;
terminate -> Y
end.
Run Code Online (Sandbox Code Playgroud)
但不完全是这个.我知道它可以用尾部或简单的递归来实现.通常X和Y是未绑定的.
在没有使用erlang全局变量的情况下,有没有办法在这些情况下进行通信?
Erlang是一种函数式语言,它意味着我们不在代码的不同部分之间进行通信,或者在没有目的的情况下将值存储在变量中,我们只是计算返回值(有时会产生一些副作用).如果我们在不同的代码分支中有共同的计算,我们可以简单地将它放在通用函数中.
test(Tester) ->
case Tester of
start -> 4;
ok -> computeY();
terminate -> computeY()
end.
computeY() ->
X = 4 + 5,
X/5.
Run Code Online (Sandbox Code Playgroud)