在前面的章节,我们看到Elixir提供了 +,-,*,/ 4个算术运算符,另外还有整数的除法和取余的两个函数 div/2 和 rem/2 。
Elixir也提供了 ++ 和 - - 来操作列表:
|
|
用 <> 把两个字符串串联起来:
|
|
Elixir也提供三个布尔运算符:or,and 和 not 。这些运算符严格要求布尔类型数据(true或false)作为它的第一个参数。
|
|
如果参数不是布尔型数据则会引起异常:
|
|
or和and都是短路运算符。如果左边不足以决定结果则它们才会执行右边的表达式:
|
|
注意:如果你是Erlang开发者,Elixir的 and 和 or 的确和Erlang里的 andalso 和 orelse 运算符相互映射影射。
除了这几个布尔运算符,Elixir还提供可以接收任何类型参数的 || ,&& 和 !。对于这几个运算符,除了 false 和 nil 其他所有值都被认为是true。
|
|
根据经验,当你想要布尔值的时候就用and,or 和 not。如果有任何参数是非布尔值,则用&&,|| 和 !。
Elixir也提供 ==,!=,===,!==,<=,>=,< 和 > 作为比较运算符。
|
|
== 和 === 不同之处在于,后者在比较整数和浮点数的时候更严格。
|
|
在Elixir里,我们可以比较两个不同的数据类型:
|
|
我们可以比较不同数据类型的原因是出于实用主义的考虑。排序算法不需要担心不同数据类型之间的排序问题。全部的排序顺序定义如下:
|
|
你完全不需要记住这个顺序,只需要知道有这个顺序存在就足够了。
有关运算符(和排序)的参考信息,请查阅 运算符手册页面 。
在下一章,我们将讨论一些基础函数,数据类型转换以及一些控制流。
原文链接: http://elixir-lang.org/getting-started/basic-operators.html