Elixir编程:从模式匹配到模块与函数的深入探索
1. 不变变量与模式匹配
在函数式编程里,赋值的概念常常被误解。实际上,在Elixir中,“=”并非赋值运算符,而是匹配运算符。
1.1 匹配运算符的工作原理
来看以下代码示例:
iex(1)> a = 2
2
iex(2)> a + 4
6
这里并非将2赋值给a,而是Elixir尝试让“=”左边与右边匹配,把值2绑定到变量a上。后续计算a + 4时,用2替代a,得到2 + 4 = 6。
而且,Elixir会重新绑定值以实现匹配:
iex(1)> a = 2
2
iex(2)> a = 3
3
不过,下面的代码会引发匹配错误:
iex(1)> a = 2
2
iex(2)> 3 = a
** (MatchError) no match of right hand side value: 2
但这样是可行的:
iex(1)> a = 2
2
iex(2)> 2 = a
2
1.2 利用模式匹配分解列表
我们可以利用模式匹配分解列表,提取元素:
Elixir核心特性深度解析
超级会员免费看
订阅专栏 解锁全文
4

被折叠的 条评论
为什么被折叠?



