技術メモ

プログラミングとか電子工作とか

Elixir入門(第三章 基本演算子)

f:id:ysmn_deus:20190122112104p:plain

どうも、靖宗です。
今回は基本演算子について。
型のところで出てきてるのでサクッと終わりそう。

おさらい

# 四則演算
+
-
*
/
# 割り算の関数
div/2
rem/2
# リスト連結
++
--

上記は前回までに出てきてます。

文字列の連結

文字列の連結には<>が使われるそうです。Hello worldの時にみたやつだ!

iex> "foo" <> "bar"
"foobar"

論理演算子

or and not

or and notPythonっぽい。(今日調べてて知りましたが、Rubyの方が類似点があるみたい?Rubyは知らない・・・)
論理演算子は論理値(boolean)以外渡すと怒られる。

iex> 1 and true
** (BadBooleanError) expected a boolean on left-side of "and", got: 1

論理値以外受け取れる演算子

|| && !が該当。falseとnil以外をtrueとする。他の言語とおなじっぽい。
空のリストとかも?

iex(12)> []
[]
iex(13)> 1 || []
1
iex(14)> 0 || []
0
iex(15)> false || []
[]
iex(16)> true || []
true

空リストはnil扱いかな。

比較演算子

== != === !== <= >= < >が該当。他の言語とほぼいっしょ。
===とかはJavascriptっぽいかな。integerとfloatの比較とかに使う。

違う型の比較

iex> 1 < :atom
true

('ω')。o(????????????)
とりあえず下の関係性に従って評価されるみたい。覚えなくてもいいよって書いてある。
存在は知っておこう。

number < atom < reference < function < port < pid < tuple < map < list < bitstring

以上!
パターンマッチングについては次回。