Erlang 和 Elixir 互相调用 (转)

lixr设计目标之一就是要确保兼容性,能够兼容Erlang和其生态系统。Elixir和Erlang 都是运行一样的虚拟机平台(Erlang Virtual Machine)。不论是在Erlang使用Elixir模块,仍是在Elixir中使用Erlang模块都是很是方便的。segmentfault

Erlang 调用 Elixir 代码

example.ex 文件代码以下:函数

定义了一个Example 模块,其中有一个sum函数返回两个数的和spa

defmodule Example do def sum(x, y) do x + y end end 

要在Erlang能够调用这个模块,首先要编译这个模块到beam文件,beam是编译好的字节码文件
打开iex,编译这个模块设计

iex(1)> c("example.ex") [Example] iex(2)> 

会在当前文件夹下生成 Elixir.Example.beam 文件code

打开erl
使用l(file)函数加载Elixir写好的模块get

1> l('Elixir.Example'). {module,'Elixir.Example'} 2> 'Elixir.Example':sum(2, 3). 3> 5 

Elixir 调用 Erlang 代码

咱们 example.erl 文件代码以下:虚拟机

-module (example). -export ([sum/2]). sum(A, B) -> A + B. 

能够直接在Elixir的iex中编译string

iex(1)> c("example.erl") [:example] iex(2)> 

也会生成 Elixir.Example.beam 文件it

模块名以冒号开始,执行io

 
iex(2)> :example.sum(2, 3) 5 iex(3)>转自:https://segmentfault.com/a/1190000000472866 
相关文章
相关标签/搜索