安装
Elixir
是基于Erlang
虚拟机的一种函数是动态语言,以运行低延时、分布式、可容错著称,在Web和嵌入式领域应用较为广泛。
可在官网下载:elixir,有关不同操作系统的安装方式写得很明白,其中windows的下载器在github上,由于一些玄学原因,能不能下载下来主要凭机缘。
下载之后就可以在线安装了,在安装过程中会有提示安装erlang
的选项,没安的建议安装一下。这一步也是有网络的问题,一般来说多试几次就可以下载成功了,然后正常安装,没什么坑。
安装过程中,会默认将安装路径加入到环境变量中,所以装完之后可在命令行中查看其版本
>elixir --version
Erlang/OTP 25 [erts-13.0.4] [source] [64-bit] [smp:20:20] [ds:20:20:10] [async-threads:1] [jit:ns]
Elixir 1.14.4 (compiled with Erlang/OTP 25)
elixir
提供了三个命令行工具,分别是iex, elixir, elixirc
,分别用于进入交互式编程界面、运行elixir
脚本和编译elixir
程序。
基本运算
在命令行中输入iex
可进入交互式elixir
编程界面,若想退出,可按两次Ctrl-C
。
elixir
中,单行注释用#
。
>iex
Interactive Elixir (1.14.4) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> IO.puts "hello elixir"
hello elixir
:ok
iex(2)> 5*100 + 20
520
elixir
中的运算符如下
类别 | 运算符 | 备注 |
---|---|---|
算术 | + - * / rem div |
rem 为求余;div 为取整 |
位运算 | || , && , ! |
适用于所有类型 |
布尔 | and , or , not |
第一个参数必须为布尔类型 |
关系 | == , != , === , !== , < , =< , > , >= |
== 和! 会检测数据类型 |
# 宇宙通用写法 0b开头为二进制;0x开头为16进制
iex(3)> 0b1111 && 0b0101
5 # 位与结果为 0b0101,即5
iex(4)> 0b1111 || 0b0101
15 # 位或结果位 0b1111,即15
iex(5)> 0b1111 && true
true # true相当于0b0001
iex(6)> 0b1111 && false
false # false相当于0
iex(7)> 0b1111 and false # 报错
** (BadBooleanError) expected a boolean on left-side of "and", got: 15
iex:7: (file)
iex(7)> false and 0b1111 # 正确写法
false
脚本
elixir
脚本以exs
为后缀,可通过elixir
命令运行,下面写一个简单的脚本
扫描二维码关注公众号,回复:
15194667 查看本文章
# hello.exs
IO.puts "hello exlixir"
运行结果为
>elixir hello.exs
hello exlixir
模块
在前面的示例中,用到了IO.puts
,其中IO
是一个模块,puts
是其中封装的函数。通过自定义模块和函数,并写入到以ex
为后缀的文件里,在编译之后,也可以实现这种调用效果。
elixir
中,函数用def
定义,模块则通过defmodule
来定义,下面写一个最简单的模块
# Hello.ex
defmodule Hello do
def say() do
IO.puts "Hello exlixir"
end
end
这回在进入命令行时,要在iex
后面写上模块名,效果如下
>iex Hello.ex
iex(1)> Hello.say
Hello exlixir
:ok
但如果调用的模块很多的话,这种方式效率太低,这个时候可以考虑使用elixirc
命令对模块进行编译
>elixirc Hello.ex
运行之后,同目录下会出现一个Elixir.Hello.beam
文件,即为编译生成的字节码,可在命令行中调用
>iex
iex(1)> Elixir.Hello.say
Hello exlixir
:ok