Erlang 和 Elixir 互相調用 (轉)


lixr設計目標之一就是要確保兼容性,可以兼容Erlang和其生態系統。Elixir和Erlang 都是運行同樣的虛擬機平台(Erlang Virtual Machine)。不管是在Erlang使用Elixir模塊,還是在Elixir中使用Erlang模塊都是非常方便的。

Erlang 調用 Elixir 代碼

example.ex 文件代碼如下:

定義了一個Example 模塊,其中有一個sum函數返回兩個數的和

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 文件

打開erl
使用l(file)函數加載Elixir寫好的模塊

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中編譯

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

也會生成 Elixir.Example.beam 文件

模塊名以冒號開始,執行

 
iex(2)> :example.sum(2, 3) 5 iex(3)>

轉自:https://segmentfault.com/a/1190000000472866

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com