Elixir是个什么鬼
自行百度维基google
Elixir 这里的等号不一样
当等号‘=’不是赋值,而是匹配(match opertator),变得更像断言,更像我们初中开始学代数的时候。
P.S.
^(脱字符),强制让变量的已有值参与匹配
Elixir 函数式编程--不可变的数据 才是好用的数据
编程就是进行数据转换,而不是数据修改。所以我们期待
some_value=[some_object];
print(some_value);
do_something_with(some_value);
print(some_value);
前后两次打印的变量并没有变,应该说此时变量都不能称之为变量,叫它为值更合适些。
而函数则是对值进行变换的引擎,一切魔法所在。
按常规想法,因为elixir的值都是不可变的,所以在进行转换的时候,需要一个副本,涉及到copy,性能很渣吧,NO
原因是既然值都是不变的,直接拿来用就好了。
比如
iex(9)> list1=[2,3,4,1]
[2, 3, 4, 1]
iex(10)> list2 =[6|list1]
[6, 2, 3, 4, 1]
list2 就是直接使用list1作为尾项,用6作为首项生成的[2,3,4,1]的值也不会变。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。