elixir 模式匹配刚接触还是有点不习惯,在Elixir里,=操作符被称为匹配操作符

iex(29)> x = 1
1
iex(30)> x
1
iex(31)> 1 = x
1
iex(32)> 2 = x
** (MatchError) no match of right hand side value: 1

1=x 合法 左右都等于1

2=x 两侧不相等时,会导致一个MatchError错误

匹配列表

iex(2)> a = [1]
[1]
iex(3)> [h|t] = a
[1]
iex(4)> h
1
iex(5)> t
[]

用[h|t] = a ---》[h|t]=[1]--》h 匹配到1  t为空

如果 [h|t] = []

** (MatchError) no match of right hand side value: []

匹配元组

iex(35)> {a, b, c} = {:hello, "word", 33}
{:hello, "word", 33}
iex(36)> a
:hello
iex(37)> b
"word"
iex(38)> c
33

两边不匹配

iex(39)> {a, b, c} = {:hello, "word"}
** (MatchError) no match of right hand side value: {:hello, "word"}

右侧第一个不是 :ok 也不匹配

iex(40)> {:ok, result} = {:ok, 13}
{:ok, 13}
iex(41)> result
13
iex(42)> {:ok, result} = {:error, :oops}
** (MatchError) no match of right hand side value: {:error, :oops}

最新文章

  1. Javascript中,document.getElementsByName获取的就一定是数组了么?
  2. FZU 2105Digits Count(线段树 + 成段更新)
  3. 导入数据经常使用的SQL语句整理整理
  4. Python~recursive function递归函数
  5. createStatement()的用法
  6. 将Cocos2dX渲染到MFC窗口上
  7. 华东交通大学2016年ACM“双基”程序设计竞赛 1005
  8. java并发编程(一)
  9. 使用Hexo搭建github博客步骤,超简便
  10. POJ1416 Shredding Company(dfs)
  11. Big Data Analytics for Security(Big Data Analytics for Security Intelligence)
  12. redis 源代码分析(一) 内存管理
  13. IIC协议总结
  14. 微信小程序demo豆瓣图书
  15. Bzoj超级经验大放送题集(好评如潮哦~~~)
  16. Boost LRU-Cache使用方法简介
  17. 移动端rem与px适应js
  18. HDU6011
  19. 转: chrome64打开弹出窗flash的办法
  20. 数学 它的内容,方法和意义 第三卷 (A. D. 亚历山大洛夫 著)

热门文章

  1. Unity 自动生成组件索引类工具
  2. Python中通过函数对象创建全局变量
  3. 数据输入——生成你需要的echart图(堆积柱状图、扇形图、嵌套环形图)
  4. 【Java并发编程】:生产者—消费者模型
  5. C/C++ -- Gui编程 -- Qt库的使用 -- 标准对话框
  6. mysql 操作符
  7. elasticsearch(二) 之 elasticsearch安装
  8. Date类学习总结(Calendar Date 字符串 相互转换 格式化)
  9. TCP三次握手/四次挥手
  10. Java中float和double转换的问题