elixir erlang 简单调用学习
实际上基于elixir 的mix 进行erlang 以及elixir 的互调用开发处理是很方便的,mix 直接就包含了构建erlang代码
同时对于代码的互调用,只要使用符合语言格式要求就行了,以下是一个简单的互调用学习
项目准备
- 项目结构
├── README.md
├── lib
│ ├── a.ex
│ └── er_app.ex
├── mix.exs
└── my_erlang_src
├── app.erl
└── demo.hrl
- 代码简单说明
lib 是elixir 模块代码的,my_erlang_src 是erlang 的
mix.exs 配置
def project do
[
app: :er_app,
version: "0.1.0",
elixir: "~> 1.15",
erlc_paths: ["my_erlang_src"], # 此处配置erlang 代码位置
start_permanent: Mix.env() == :prod,
deps: deps()
]
end
app.erl 一个简单的erlang模块,包含了引用定义,以及调用elixir 模块代码
-module(app).
-export([init/0,app/0]).
-include("demo.hrl").
init() ->
Info = #dalong{name=test,age=18}, % 使用record
io:format("this is a demo \r\n ~w",[Info]).
app() ->
'Elixir.A':myinit(). % 调用 elixir 模块代码
demo.hrl
-define(APPNAME, ?MODULE).
-record(dalong, {name,age}).
a.ex 一个简单的elixir 模块
defmodule A do
def myinit do
IO.puts "A.myinit"
end
end
er_app.ex 调用erlang 模块代码,注意格式
defmodule ErApp do
def demoapp do
:app.init()
end
end
测试&效果
- 运行
直接使用iex 就行了,会自动构建,比较方便
iex -S mix
调用erlang 的
erlang 调用elixir 的
说明
我很早学习elxiir 的时候写过一个简单的介绍,现在重新学习发现mix 工具很方便,很强大,rebar3 是erlang 一个方便的包管理工具,实际上
对于erlang 项目直接基于mix 也是可以的
参考资料
https://github.com/rongfengliang/elixir_erlang_basic_invoke_learning
https://hexdocs.pm/mix/1.13/Mix.Tasks.Compile.Erlang.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2023-01-05 dremio PrivilegeCatalog 接口简单说明
2023-01-05 dremio SourceCatalog 服务说明
2023-01-05 dremio ManagedStoragePlugin 简单说明
2021-01-05 Data-Prepper opendistro 开源的基于es 的trace 分析工具
2021-01-05 使用babel-standalone 让浏览器支持es6特性
2021-01-05 tempo grafana 团队开源的分布式追踪框架
2021-01-05 grafana/agent grafana 团队开源的兼容prometheus 的agent