Elixir (連接)列表

2023-12-14 16:22 更新

Elixir中使用方括號(hào)來(lái)定義列表的值。值可以是任意類型:

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

兩個(gè)列表可以相加或相減通過(guò)食用和運(yùn)算符:?++/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]

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

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

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

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

有時(shí)你創(chuàng)建的列表會(huì)返回一個(gè)單引號(hào)包圍的值。例如:

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

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

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

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

iex> 'hello' == "hello"
false

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)