elixir 调用erlang 代码
备注:
mix new erlangelixirdemo
项目结构如下:
├── README.md
├── config
│ └── config.exs
├── lib
│ └── erlangelixirdemo.ex
├── mix.exs
└── test
├── erlangelixirdemo_test.exs
└── test_helper.exs
创建src 目录,并编写erlang code
项目结果如下:
├── README.md
├── config
│ └── config.exs
├── lib
│ └── erlangelixirdemo.ex
├── mix.exs
├── src
│ └── app.erl
└── test
├── erlangelixirdemo_test.exs
└── test_helper.exs
src/app.erl 代码如下:
-module(app).
%%API
-export([
login/0,
userlogin/0,
login/2,
userlogin/1
]).
-record(user, { name, age }).
login() ->
{ok,'dalongdemo'}.
login(Name , Password) ->
{ok,'appdemo'}.
userlogin()->
#user{name='dalongdemo',age=44}.
userlogin(User)->
User.
lib/erlangelixirdemo.ex 代码如下:
defmodule Erlangelixirdemo do
@moduledoc """
Documentation for Erlangelixirdemo.
"""
def call_erlang do
IO.inspect :app.userlogin()
end
end
iex -S mix
Erlang/OTP 20 [erts-9.3] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Compiling 1 file (.erl)
Compiling 1 file (.ex)
Generated erlangelixirdemo app
Interactive Elixir (1.6.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> E
Elixir Enum Enumerable
ErlangError Erlangelixirdemo Exception
iex(1)> Erlang
ErlangError Erlangelixirdemo
iex(1)> Erlangelixirdemo.
MixProject call_erlang/0
iex(1)> Erlangelixirdemo.call_erlang
{:user, :dalongdemo, 44}
{:user, :dalongdemo, 44}
默认mix compile 的时候,对于erlang 代码是在src 目录进行编译的,同时可以在 mix.exs 修改
def project do
[
app: :appdemo,
version: "0.1.0",
elixir: "~> 1.6",
start_permanent: Mix.env() == :prod,
deps: deps()
]
end
如下:
def project do
[app: :my_app,
version: "0.0.1",
elixir: "~> 1.0",
erlc_paths: ["src"], # ADD THIS OPTION
build_embedded: Mix.env == :prod,
start_permanent: Mix.env == :prod,
deps: deps]
end
https://github.com/rongfengliang/elixir-erlang
elixir 调用erlang 代码的更多相关文章
- [Erlang 0109] From Elixir to Erlang Code
Elixir代码最终编译成为erlang代码,这个过程是怎样的?本文通过一个小测试做下探索. 编译一旦完成,你就看到了真相 Elixir代码组织方式一方面和Erlang一样才用非常 ...
- 如何实现 javascript “同步”调用 app 代码
在 App 混合开发中,app 层向 js 层提供接口有两种方式,一种是同步接口,一种一异步接口(不清楚什么是同步的请看这里的讨论).为了保证 web 流畅,大部分时候,我们应该使用异步接口,但是某些 ...
- 1.JAVA中使用JNI调用C++代码学习笔记
Java 之JNI编程1.什么是JNI? JNI:(Java Natibe Inetrface)缩写. 2.为什么要学习JNI? Java 是跨平台的语言,但是在有些时候仍然是有需要调用本地代码 ( ...
- 股票数据调用示例代码php
<!--?php // +---------------------------------------------------------------------- // | JuhePHP ...
- 在HTML标签<a/>中调用javascript代码
<a/>标签的“href”属性可以是一个有效的URL,表示跳转的目的地,除此之外,href还可以是一段javascript代码.当为“href”设置javascript代码时,格式如下:& ...
- 在Java中直接调用js代码(转载)
http://blog.csdn.net/xzyxuanyuan/article/details/8062887 JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Ja ...
- java调用python代码
同样的我们需要安装jython,具体的步骤如下: 1. 去 http://sourceforge.net/projects/jython/ 下载最新的jython相关的jar包. 2. 下载下来的ja ...
- Matlab与C/C++联合编程之Matlab以MEX方式调用C代码(五)完整过程加示
如下为本人亲证代码: 一: 编译器的安装与配置(环境不同,显示结果不同) 要使用MATLAB编译器,用户计算机上应用事先安装与MATLAB适配的以下任何一种ANSI C/C++编译器: 5.0.6.0 ...
- 在Java中直接调用js代码
JDK1.6版添加了新的ScriptEngine类,允许用户直接执行js代码. 在Java中直接调用js代码 不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: “alert ...
随机推荐
- Android 版本升级涉及到的数据库数据迁移问题
最近做老版本向新版本升级,新版本增加了几张表,有的表经过了增加字段.那么如何把老的数据迁移到新的版本里呢? 我写了一段伪代码,是关于我们项目里的 用户登录信息 Users表, 历史表histor ...
- angular directive restrict 的用法
E 表示该指令是一个element; A 表示该指令是attribute; C 表示该指令是class; M 表示该指令是注视 实例如下: 原帖:www.thinkster.io/angularjs/ ...
- C++(三十三) — 全局函数、成员函数的区别
区别: (1)全局函数的参数个数,比局部函数要多一个: (2)二者都可,返回元素.返回引用. class test { public: test(int a, int b) { this->a ...
- Java MongoDB插入
前言 插入是向MongoDB中添加数据的基本方法.对目标集使用insert方法来插入一条文档.这个方法会给文档增加一个”_id”属性(如果原来没有的话),然后保存到数据库中. 1.连接数据库,拿到集合 ...
- bzoj1001平面图最小割转对偶图最短路
https://www.lydsy.com/JudgeOnline/problem.php?id=1001 很明显的求对偶图的最短路即可(由于特判写错了一直wa = = ) //#pragma com ...
- 【原创】移动端获取用户公网ip,获取用户ip
有时候某些api需要获取用户的ip , 特此分享一下获取用户公网ip的方法 纯js <script src="http://pv.sohu.com/cityjson?ie=utf-8& ...
- Windows 系统cmd设置添加静态路由方式
电脑上添加静态路由,cmd设置路由 方法/步骤 1.首先在“运行”窗口输入cmd(按WIN+R打开运行窗口),然后回车进入命令行,输入 route add 10.253.251.0 mask ...
- 关于Mac上使用ideviceinstaller操作iPhoneXR等24位UDID设备报“ERROR: Invalid UDID specified”解决办法
最近新申请了一台iPhone XR, 测试时发现使用ideviceinstaller命令老是报错: Jackeys-MacBook-Pro:~ jackey$ ideviceinstaller -u ...
- 由浅入深了解EventBus:(五)
事件分发 EventBus3.0的事件的分发时通过EventBus类中的post(粘性事件为postSticky)方法,post与postSticky的唯一区别就是,在postSticky内部首先会向 ...
- hystrix 线程数,超时时间设置测试
拜读了大拿的文章,收藏起来 https://mp.weixin.qq.com/s?__biz=MzU0OTk3ODQ3Ng==&mid=2247483791&idx=1&sn= ...