Elixir (連接)列表

2023-12-14 16:22 更新

Elixir中使用方括號來定義列表的值。值可以是任意類型:

iex> [1, 2, true, 3]
[1, 2, true, 3]
iex> length [1, 2, 3]
3

兩個列表可以相加或相減通過食用和運算符:?++/2??--/2?

iex> [1, 2, 3] ++ [4, 5, 6]
[1, 2, 3, 4, 5, 6]
iex> [1, true, 2, false, 3, true] -- [true, false]
[1, 2, 3, true]

關于列表的頭尾我們會進行很多討論。頭是列表的第一個元素,而尾是剩余部分。它們可以通過函數(shù)和來得到。讓我們將一個列表賦值給一個變量,然后獲得它的頭尾:?hd/1??tl/1?

iex> list = [1, 2, 3]
iex> hd(list)
1
iex> tl(list)
[2, 3]

獲取空列表的頭尾會產(chǎn)生錯誤:

iex> hd []
** (ArgumentError) argument error

有時你創(chuàng)建的列表會返回一個單引號包圍的值。例如:

iex> [11, 12, 13]
'\v\f\r'
iex> [104, 101, 108, 108, 111]
'hello'

當Elixir發(fā)現(xiàn)一個可打印的ASCII數(shù)字列表,便會將其以字符列表形式打印出來。字符列表看上去和Erlang代碼非常相似。當你在IEx中看見一個不確定類型的值,你可以使用來獲得它的信息:?i/1?

iex> i 'hello'
Term
  'hello'
Data type
  List
Description
  ...
Raw representation
  [104, 101, 108, 108, 111]
Reference modules
  List

記住在Elixir中單引號和雙引號所代表的是不同的類型:

iex> 'hello' == "hello"
false

單引號是字符列表,雙引號是字符串。我們會在"二進制,字符串和字符列表"章節(jié)繼續(xù)討論它們。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號