- Elixir 教程
- Elixir - 首頁
- Elixir - 概述
- Elixir - 環境配置
- Elixir - 基本語法
- Elixir - 資料型別
- Elixir - 變數
- Elixir - 運算子
- Elixir - 模式匹配
- Elixir - 決策語句
- Elixir - 字串
- Elixir - 字元列表
- Elixir - 列表和元組
- Elixir - 關鍵字列表
- Elixir - 對映
- Elixir - 模組
- Elixir - 別名
- Elixir - 函式
- Elixir - 遞迴
- Elixir - 迴圈
- Elixir - 可列舉物件
- Elixir - 流
- Elixir - 結構體
- Elixir - 協議
- Elixir - 檔案 I/O
- Elixir - 程序
- Elixir - 符號
- Elixir - 列表推導式
- Elixir - 型別說明
- Elixir - 行為
- Elixir - 錯誤處理
- Elixir - 宏
- Elixir - 庫
- Elixir 有用資源
- Elixir - 快速指南
- Elixir - 有用資源
- Elixir - 討論
Elixir - 雜項運算子
除了上述運算子外,Elixir 還提供了一系列其他運算子,使其成為一種功能強大的語言。
連線運算子
Elixir 提供了一個字串連線運算子,“<>”。它用於連線兩個字串。例如:
IO.puts("Hello"<>" "<>"world")
以上命令產生以下結果:
Hello World
匹配
匹配運算子“=”使用了該語言的模式匹配特性。我們將在後續關於模式匹配的章節中詳細討論此運算子。
請注意,“=”不僅是賦值運算子。當左值是變數,右值是字面量或另一個變數時,右邊的值將繫結到變數,即進行賦值。但是,如果右邊是變數,左邊是字面量,則會發生模式匹配。當兩個值都是字面量時也是如此。
固定
固定運算子“^”是一個一元運算子,用於在變數名前新增字首。它確保在與匹配運算子一起使用時,該變數不會被賦值,而是與該值匹配。例如:
a = 12 #assignment a = 13 #assignment ^a = 13 #Pattern matching
管道
管道運算子“|>”的工作方式類似於 Unix shell 中的管道運算子。它允許我們將一個函式的輸出傳遞到另一個函式。例如,如果我們需要將加法的結果傳遞到 IO.puts,我們將使用:
(4+3) |> IO.puts
執行上述程式時,會產生以下結果:
7
這將識別我們已將加法的結果傳遞到 IO.puts 函式。這將在您的控制檯上列印 7。
字串匹配
字串匹配運算子“=~”在左邊取一個字串,在右邊取一個字串或正則表示式。如果右邊的字串是左邊的子串,則返回 true。如果右邊的正則表示式與左邊的字串匹配,則返回 true。否則返回 false。例如:
IO.puts("tutorialspoint" =~ "poi")
IO.puts("tutorialspoint" =~ ~r/[a-z]*/)
IO.puts("tutorialspoint" =~ ~r/[0-9]*/)
執行上述程式時,會產生以下結果:
true true true
請注意,Elixir 中的正則表示式以 '~r' 字首開頭。
程式碼點
它是一個一元運算子“?”,返回其右側字元的 UTF-8 程式碼點。它只能取一個字元並接受轉義序列。例如:
IO.puts(?a) IO.puts(?\s)
執行上述程式時,會產生以下結果:
97 32
捕獲
捕獲運算子“&”用於定義匿名函式時。我們將在函式章節中詳細討論。
三元運算子
Elixir 沒有三元運算子。我們可以使用 if else 語句實現相同的功能:
a = if true, do: "True!", else: "False!"
包含
此運算子檢查左邊的專案是否存在於右邊的可列舉結構中。例如,我們可以使用此運算子檢查列表、元組等原子中是否存在原子:
:yes in [:true, :false, :yes]
以上語句返回 true,因為 :yes 存在於列表中。