codecamp

Elixir 编译

大多数时候我们都会将模块写入文件,方便编译和复用。假设我们有一个名为math.ex 的文件,内容如下:

defmodule Math do
  def sum(a, b) do
    a + b
  end
end

这个文件可以用elixirc来编译:

$ elixirc math.ex

这将会生成一个名为Elixir.Math.beam的文件,包含了已定义模块的字节码。如果我们重新启动iex,将可以使用我们的模块定义(需要在字节码文件存在的目录中启动iex):

iex> Math.sum(1, 2)
3

Elixir工程通常由三个目录组成:

  • ebin —— 包含了编译好的字节码
  • lib —— 包含了elixir代码(通常是​.ex​文件)
  • test —— 包含了测试文件(通常是​.exs​文件)

在实践中,构建工具mix将会为你编译和设置好路径。出于学习目的,Elixir也支持脚本模式,它更加灵活并且不会生成任何编译后的火星文字。


Elixir 嵌套数据结构
Elixir 脚本模式
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Elixir 基本操作符

Elixir 二进制,字符串和字符列表

Elixir 类型规格与行为

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }