京东云服务器推荐配置、多种配置选择,满足不同业务需求!

热门推荐

⭐ 稳定入门选择

配置:2核2G/5M

适用场景:个人站点 / 轻量应用

特点:性价比高,稳定可靠

¥19/月
立即购买
流量友好

☁️ 轻量云主机

配置:2核4G 5M

适用场景:小型业务 / 博客 / 测试环境

特点:流量友好,性能均衡

¥149/年
立即购买
高性能

💻 云服务主机

配置:4核16G 8M

适用场景:中小型服务 / 多并发场景

特点:充足内存与带宽,性能强劲

¥750/年
立即购买
新人专享

🎁 新人福利

新人访问 → 点击 → 最新活动

可获取 3000元 礼券

立即领取
服务端 / Erlang 教程 / Erlang 教程
Erlang Fun
Erlang 进程Erlang 二进制文件

Erlang Fun

Fun用于在Erlang中定义匿名函数。匿名函数的一般语法如下:

语法

F = fun (Arg1, Arg2, ... ArgN) ->
   ...
End

说明

  • F −这是分配给匿名函数的变量名。

  • Arg1, Arg2, ... ArgN −这些是传递给匿名函数的参数。

以下示例展示了如何使用匿名函数。

实例

-module(helloworld). 
-export([start/0]). 

start() -> 
   A = fun() -> io:fwrite("Hello") end, 
   A().

关于上述程序,需要注意以下几点。

  • 匿名函数被分配给变量A。

  • 通过变量的匿名函数A()。

当我们运行上面的程序时,我们将得到以下结果。

“Hello”

匿名函数的另一个示例如下,但这是使用参数的。

-module(helloworld). 
-export([start/0]). 

start() -> 
   A = fun(X) -> 
      io:fwrite("~p~n",[X]) 
      end, 
   A(5).

当我们运行上面的程序时,我们将得到以下结果。

输出

5

使用变量

匿名函数具有访问匿名函数范围之外的变量的能力。让我们看一个实例-

实例

-module(helloworld). 
-export([start/0]). 

start() -> 
   B = 6, 
   A = fun(X) -> 
      io:fwrite("~p~n",[X]), 
      io:fwrite("~p~n",[B]) 
      end, 
   A(5).

关于上述程序,需要注意以下几点。

  • 变量B在匿名函数的范围之外。

  • 匿名函数仍然可以访问在全局范围内定义的变量。

当我们运行上面的程序时,我们将得到以下结果。

输出

5
6

函数中的函数

高阶函数的另一个最强大的方面之一是,您可以在函数中定义一个函数。让我们来看一个如何实现此目标的示例。

实例

-module(helloworld). 
-export([start/0]). 

start() -> 
   Adder = fun(X) -> fun(Y) -> io:fwrite("~p~n",[X + Y]) end end, 
   A = Adder(6), 
   A(10).

关于上述程序,需要注意以下几点。

  • 加法器是一个高阶函数,定义为fun(X)。

  • 加法器函数fun(X)引用了另一个函数fun(Y)。

当我们运行上面的程序时,我们将得到以下结果。

输出

16
Erlang 进程Erlang 二进制文件
下一篇:Erlang 进程