核心:
匹配
=
号是匹配.表示左边和右边互相匹配值.
<-
匹配,但匹配失败时,不会报错,而是返回nil值.
不可变
所有值,一旦创建就不可再改变.
基础
- 整数: 任意大小的整数
- 浮点数
-
原子: 全局唯一名称
- 区间Range: start..end
-
正则表达式: 可用~r/../ 或其他~r{..} 等sigil包裹. 在Regex模块中.
- PID和端口: 进程ID.端口表示可读写的资源引用.self表示自身进程.
- 引用.全局唯一引用.
复合数据类型:
- 元组: 用
{}
包围.值的集合. - 列表: 与lisp列表相同,用
[...]
包围- 关键字列表: 和映射相同,但写为由
[]
包裹.默认会转成[{},{}]
形式.
- 关键字列表: 和映射相同,但写为由
- 映射: 如ruby的哈希表,由
%{k => v, k => v}
形式写成.键可是任何类型. -
二进制: 用
<< ... >>
包裹的值列表 - Date和Time:分别由
~D[...]
和~T[...]
表示.- NaiveDateTime: 纯由
Date
和Time
组成,由~N[...]
表示
- NaiveDateTime: 纯由
运算符
+, -, *, /
,div,rem
整除和取余.
and, &&, or, ||, not, !
===, ==, !==, !=, >, <, >=, <=
<>
二进制连结
++,--
列表连结和取不同
in
判断值是否在可枚举类型中
^
针操作符:使用匹配的值.
作用域
基于语法的作用域.
with
函数可自定局部变量
IEx
通过h IEx
可查看其帮助文档.
当模块中的导出包含注解@doc false
,@impl true
时,iex不会自动完成.
–werl 可在windows启用自动完成
IEx会对自动判断表达式的边界,对表达式求值,如果表达式需要多行来表示,可使用()来包裹.
退出方式:
- 通过BREAK菜单(Ctrl-C)按下q,回车
- 按下Ctrl-C,Ctrl-C
- 按下Ctrl-\
可使用pry
给Elixir代码下断点.这颗让开发者在给定函数内执行IEx会话.
def my_fun(arg1, args) do
require IEx; IEx.pry()
...
end
IEx在启动时会加载.iex.exs
文件.
函数
匿名函数
Phoenix Framework
-
获取Phoenix框架:
mix archive.install hex phx_new
mix是管理任务的工具,如果想查找相关任务帮助,可通过类似mix help --search "phx"
找到. -
创建新Phoenix项目.
mix phx.new demo --live
-
获取项目的依赖项,以进行编译或运行
cd demo && mix deps.get
-
为网页资源获取依赖
cd asset && npm install && node node_modules/webpack/bin/webpack.js --mode development
-
配置项目数据库
mix ecto.create
-
启动Phoenix应用.
mix phx.server
或iex -S mix phx.server
启动中,如果报错: `inotify-tools` is needed to run `file_system` ,可通过
sudo apt install inotify-tools
安装. -
打开
localhost:4000
可查看结果.