Elixir语言初步

安装

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

猜你喜欢

转载自blog.csdn.net/m0_37816922/article/details/130363767