Keyword list 是由我們學過的 list 加上 tuple 組合而成
且 tuple 必須要是由 atom 的 key 與另一個值組成
原本的結構寫法為
[{:name, "Jack"}, {:age, 20}]
簡化成
[name: "Jack", age: 20]
keyword list 跟之前介紹的 map 差異為
keyword list 最常使用在函式的 options 裡
我們使用 String.split/3
來示範
如果有一個字串 "title,page,price"
我們想要把每個字分開
iex> String.split("title,page,price", ",")
["title", "page", "price"]
不過我們目前只有用到兩個變數,String.split/3
的定義為
split(string, pattern, options \\ [])
這個 options 預設為空 list
函式的文件裡面的 options 選項有兩個
:parts
總共要分成幾部分,需填入正整數或是 :infinity
預設為 :infinity
:trim
預設為 false 會把結果中的空字串去除使用的時候使用 keyword list 填入
iex> String.split("title,page,price", ",", [parts: 2])
["title", "page,price"]
而且在函式的最後一個變數使用 keyword list 可以省略 []
iex> String.split("title,,page,price,,", ",", trim: true)
["title", "page", "price"]