java中的fun函数_fun-函数的数据类型⼩结
1.匿名fun函数
a.匿名函数与变量绑定
我们⼀般看到的是将⼀个匿名的函数赋值给⼀个变量:相当于这个变量就是以后的函数名。
后⾯就将这个变量当作函数名⽤即可。例如:
Double=fun(X)->2*x end.
Double(2). 结果为1.
parameter数据类型b.匿名fun函数作为函数参数
L=[1,2,3,4].
list:map(fun(X)->2*X end,L).
总之,要匿名函数发挥作⽤,就必须与变量绑定,或者作为参数被传给其他函数,还有就是⼀定不要忘了匿名函数的函数体有个end作为其结尾。
2.函数别名的fun函数
a.本模块应⽤
如果要应⽤本模块内部的已经定义的某个函数,直接将之传递给其他函数当做参数,⽤如下形式
make(Name)->
register(Name,spawn(fun()->my_handler(fun no_op/1) end)).
no_op(_)->void.
my_handler(Fun)->
receive
{event,Any}->
catch Fun(Any)
end.
在my_handler()函数参数的fun no_op/1就相当是no_op(_)函数的函数别名。当赋值给⼀个变量以后可以⽤这个别名像调⽤任意普通函数⼀样的来调⽤这个函数。
注:本地别名fun函数与匿名fun函数在实现上很类似,它们都依赖于模块的当前版本。
b.其他模块应⽤
1 -module(test).
2
3 -export([test/1]).
4
5 test(X) when X > 2 -> true;
6
7 test(X) -> false.
如果在shell中应⽤:
注:在被调⽤时,它们不依赖于特定的版本。反⽽是总是指向引⽤函数的最新版本。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论