记录与映射组 记录(record) 记录其实是元组的另一种形式。通过使用记录,可以给元组里的各个元素关联一个名称。 记录使用方法 通过记录命名元组里的元素: -record(Name,{ Key1 = Default1,…
分类:erlang教程
Elixir 分布式 Application 故障转移和接管
Elixir 可以运行在主/从, 故障转移/接管模式下. 要使Elixir应用程序能够执行故障转移/接管, Elixir应用程序必须是一个OTP应用程序. 下面来创建一个包含Supervisor的Elixir项目 mix…
使用 Rust 语言开发 Erlang NIF
Rustler 项目还不是很成熟, 基本可用. 有兴趣的可以给作者提 Issue. Rustler 是一个在安全的用 Rust 编写 Erlang NIF 的库. 这里安全的含义是, 它不会导致 BEAM(Erlang …
[elixir! #0045] 确认路径上的文件夹都存在
iex> :filelib.ensure_dir('/foo/bar/baz.ex') #确认文件夹`/foo/bar`存在 :ok 确认路径上的文件夹都存在, 如果不存在则新建. 也可使用 "/foo/bar/b…
when erlang gen-server's terminate is call
概述 GenServer的terminate callback在进程退出时会被调用. 但若没有:erlang.process_flag(:trap_exit, true), 进程可能被悄无声息地kill掉, 而不走ter…
[elixir! #0032] 在 elixir 中使用 ets (2) ---- 匹配查询
上次我们介绍了 ets 表的基本配置方法, 这次我们将通过 phoenix pubsub 的源码来了解 ets 中的一些其他操作方法. 新建 ets 表 ^local = :ets.new(local, [:duplic…
引用计数 vs. GC
内存管理问题 内存管理是编程过程中的一个经典问题,早期在 C 语言时代,几乎都靠 malloc/free 手动管理内存。随着各个平台的发展,到现在被广泛采用的主要有两个方法: 引用计数 (ARC,Automatic Re…
erlang Cannot get connection id for node bug
bug 描述 ping 同样sname, 使用ip作为hostname, 会使vm崩溃. ~/ejoy/battlenet/gangplank/apps/gate(master*) » iex --name aaa@bb…
vimerl +rebar3 vimerl找不到n2o的头文件
在rebar3 创建的工程里,如果想包含依赖工程(deps)里面的头文件*.hrl 可以这样写,以包含n2o里面的头文件为例子: -include_lib("n2o/include/wf.hrl"). 但是问题来了,用v…
[erlang] 什么是supervisor_bridge
在OTP的源代码中,我发现了一个陌生的behaviour,名为supervisor_bridge。它的作用是什么,和普通的supervisor又有什么区别呢? 于是我找到了supervisor_bridge.erl这个文…
rebar3 的使用
最近从新拾起erlang做一个业余项目,之前一直用rebar来构建工程。在rebar的项目主页看到We encourage you to move to https://github.com/erlang/rebar3的…
erlang_base01_语法
erlang语法总结—转 1、退出,输入 haut(). 2、-module 3、module_name:function_name( arguments ) 例如调用tut:double(10),说明调用tut模块的d…