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]

关于列表的头尾我们会进行很多讨论。头是列表的第一个元素,而尾是剩余部分。它们可以通过函数和来得到。让我们将一个列表赋值给一个变量,然后获得它的头尾:​hd/1​​tl/1

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

获取空列表的头尾会产生错误:

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

有时你创建的列表会返回一个单引号包围的值。例如:

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

当Elixir发现一个可打印的ASCII数字列表,便会将其以字符列表形式打印出来。字符列表看上去和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

单引号是字符列表,双引号是字符串。我们会在"二进制,字符串和字符列表"章节继续讨论它们。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号