我想知道如果没有显式传递,函数是否可以获取变量。
问题主要在于清理我的代码,因为我有许多函数需要传递将用于下一个函数的每个变量。
例如,在SML中,可以通过以下方式轻松实现此目的:
fun myFun varx vary varz
let
fun otherFun () = varx
fun otherFun2 () = vary
in
otherFun() + otherFun()
end
有没有办法让其他函数看到未明确传递给它的变量?或者这不是人们在erlang中编程的方式吗?
答案 0 :(得分:1)
Erlang变量范围的工作原理大致相同:
E.g:
add_two(X) ->
F = fun(Y) ->
X + Y
end,
F(2).
希望这有帮助。