刚学 Erlang 时,如果只是想试一下模式匹配,或者看看 spawn(开进程)、!(发消息)和 receive(收消息)到底是怎么配合的,还要去搞一套完整的 Erlang/OTP 环境、建文件、编译……确实挺折腾。特别是第一次看到 -module、-export、-> 这些充满 “异域风情” 的符号,很容易让人头晕。
这时候,直接用咱们绿叶网的 Erlang 在线编译器就省事多了。打开网页直接敲代码,点一下运行就能看结果。不仅适合新手边学边试,拿来快速验证一小段相对独立的逻辑也非常方便。
页面上方就是咱们的编译器。操作非常简单,无非就是经典的 “四步走”:
Ctrl + Enter 快捷键。我们来跑个经典的小例子:主进程 “派活儿” 给子进程,子进程算完求和后,再把结果发回来。代码如下:
-module(main).
-export([main/0]).
main() ->
Parent = self(),
Worker = spawn(fun() ->
receive
{sum, Numbers} ->
Parent ! {result, lists:sum(Numbers)}
end
end),
Worker ! {sum, [10, 20, 30, 40]},
receive
{result, Total} ->
io:format("Total: ~p~n", [Total])
end.运行结果如下。
Total: 100你看,像上面这种几十行的小测试,用在线编译器是再合适不过了。不用建项目,写完就跑,所见即所得。
Erlang 的编程思路和很多常见语言不太一样。与其抱着文档硬啃概念,不如边敲代码边看效果。咱们的 Erlang 在线编译器主打一个 “即开即用、随时验证”,非常适合以下几个场景:

简单来说,Erlang 是一门专门为 “高并发、高可用” 量身定制的编程语言。它诞生于 20 世纪 80 年代,最早是爱立信(Ericsson)用来开发电信交换机系统的。
想象一下,电话网络必须 7x24 小时运行,总不能因为一个小故障就让整片地区的电话都打不通吧?所以 Erlang 从骨子里就自带 “抗造” 和 “容错” 的基因。

对于初学的小伙伴来说,需要先建立 3 个直观印象:
Erlang 并不适合拿来写个普通的网页后台或者一次性的小脚本。它的主战场是那些需要同时处理海量连接、要求长时间稳定运行的系统。常见的典型场景包括:

如果你的项目只是普通的增删改查,用 Erlang 会觉得大材小用且学习成本高。但如果业务场景明确要求 “并发极高、7x24小时不能停机、局部出错还要能自我恢复”,那 Erlang 这套技术栈就会让你觉得非常得心应手。
很多语言也能开线程跑异步,但 Erlang 的并发是 “骨子里的”。这主要归功于它与众不同的两点设计:
当然,这并不意味着用 Erlang 写并发就永远不会卡顿(比如消息发得太快把信箱塞满了也会出问题),但它确实从底层帮你避开了最让人头疼的 “共享状态” 陷阱。

在看资料时,这 3 个名字经常像 “连体婴” 一样出现。其实不用被它们唬住,我们可以用盖房子的过程来理解它们:

在 C、Java 或 Python 里,= 就像个搬运工,负责把右边的值塞给左边的变量。但在 Erlang 里,= 其实叫 “模式匹配(Pattern Matching)” ,它的逻辑更像是 “对形状”。
我们来看看下面这几行代码:
Point = {10, 20},
{X, Y} = Point,
io:format("X=~p, Y=~p~n", [X, Y]).其中:
这里有两个初学者一定要适应的设定:
一开始没有可变变量可能会让你觉得有些反常,但等你习惯了这种 “匹配” 思维后,你会发现以后用来拆解复杂参数、写分支逻辑(比如 case 和 receive)时,代码会变得非常清晰流畅。
代码写得多了以后,鼠标点来点去多少有点慢。Erlang 在线编译器支持下面这些常用快捷键,小伙伴们先把几个高频的记住就够用了。
Ctrl + Enter:运行代码。Ctrl + Z:撤销、Ctrl + Y:重做。Ctrl + C:复制、Ctrl + V:粘贴。Ctrl + A:全选。Ctrl + X:剪切。Ctrl + /:注释或取消注释。Ctrl + Home:跳转到首行的行首。Ctrl + End:跳转到末行的结尾。其中最值得记住的还是 Ctrl + Enter。刚改完一个模式、receive 分支或者消息结构,顺手运行一次,很快就能知道代码到底按不按你的预期工作。