- Mastering Elixir
- André Albuquerque Daniel Caixinha
- 293字
- 2021-08-05 10:42:45
Booleans
Elixir has three values related to Boolean operations: true, false, and nil (where nil represents the absence of value—similar to null in most other languages). However, those are just some syntatic sugar, as internally they are represented as atoms of the same name, as you can see in the following example:
iex> true == :true
true
iex> false == :false
true
iex> nil == :nil
true
You have the common Boolean operators, or, and, and not:
iex> true or false
true
iex> true and false
false
iex> not false
true
However, these operators are type-strict in their first argument: they only accept true or false. If you pass anything else as an argument, you'll get BadBooleanError.
This is where the concept of truthiness and falseness enters. Similar to what happens in Ruby or C, false and nil are treated as falsey values, and everything else is considered to be truthy. The operators that work with falsey and truthy values are && (and), || (or), and ! (not):
iex> "a value" || false
"a value"
iex> "a value" && false
false
iex> nil && "a value"
nil
iex> !"a value"
false
Notice how these operators short circuit depending on the arguments. With ||, it returns the first value that's truthy, whereas with &&, it returns the first falsey value (in both cases, in the event those conditions never happen, they return the last value).
You also have the other normal comparison operators, such as greater than (>) and inequality (!=)—you can find the full list at https://hexdocs.pm/elixir/operators.html. The one that's worth pointing out is the strict equality operator, which, besides comparing values, compares types:
iex> 3 == 3.0
true
iex> 3 === 3.0
false
- C程序設計簡明教程(第二版)
- 小程序實戰視頻課:微信小程序開發全案精講
- 軟件界面交互設計基礎
- Django:Web Development with Python
- Spring Cloud、Nginx高并發核心編程
- Mastering OpenCV 4
- 你不知道的JavaScript(中卷)
- 利用Python進行數據分析(原書第3版)
- Mastering JavaScript High Performance
- Windows Phone 7.5:Building Location-aware Applications
- 零基礎學C語言第2版
- C語言程序設計習題與實驗指導
- Access 2010數據庫應用技術實驗指導與習題選解(第2版)
- 遠方:兩位持續創業者的點滴思考
- 從零開始:C語言快速入門教程