Erlang 和 Elixir 互相調用

Elixr設計目標之一就是要確保兼容性,能夠兼容Erlang和其生態系統。Elixir和Erlang 都是運行一樣的虛擬機平臺(Erlang Virtual Machine)。不論是在Erlang使用Elixir模塊,仍是在Elixir中使用Erlang模塊都是很是方便的。函數

Erlang 調用 Elixir 代碼

example.ex 文件代碼以下:設計

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

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寫好的模塊class

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

Elixir 調用 Erlang 代碼

咱們 example.erl 文件代碼以下:module

-module (example).
-export ([sum/2]).

sum(A, B) -> 
    A + B.

能夠直接在Elixir的iex中編譯兼容性

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

也會生成 Elixir.Example.beam 文件file

模塊名以冒號開始,執行erlang

iex(2)> :example.sum(2, 3)
5
iex(3)>
相關文章
相關標籤/搜索