Elixir中的数组


Learn X By Example · Elixir 篇 · Array in Elixir


我们的第一个示例将会展示如何在 Elixir 中使用数组。下面是源代码:

defmodule ArrayExample do
  def run do
    # Create an array (list) with 5 elements, all initialized to 0
    a = List.duplicate(0, 5)
    IO.puts("emp: #{inspect(a)}")

    # Set a value at an index
    a = List.replace_at(a, 4, 100)
    IO.puts("set: #{inspect(a)}")
    IO.puts("get: #{Enum.at(a, 4)}")

    # Get the length of the array
    IO.puts("len: #{length(a)}")

    # Declare and initialize an array in one line
    b = [1, 2, 3, 4, 5]
    IO.puts("dcl: #{inspect(b)}")

    # Create an array with specific values at specific indices
    c = [100] ++ List.duplicate(0, 2) ++ [400, 500]
    IO.puts("idx: #{inspect(c)}")

    # Create a 2D array
    two_d = [
      [0, 1, 2],
      [1, 2, 3]
    ]
    IO.puts("2d: #{inspect(two_d)}")

    # Create and initialize a 2D array
    two_d = [
      [1, 2, 3],
      [1, 2, 3]
    ]
    IO.puts("2d: #{inspect(two_d)}")
  end
end

ArrayExample.run()

在 Elixir 中,没有像其他语言中的传统数组,而是使用列表。但是我们可以像其他语言那样使用它们。

这里我们定义了一个长度为5的列表 a 。并使用 List.duplicate/2 将它初始化为0。

我们可以使用 List.replace_at/3 设置某个位置的值,并使用 Enum.at/2 获取值。

内置的 length/1 函数返回列表的长度。

我们可以使用 [1, 2, 3, 4, 5] 语法在同一行声明和初始化列表。

我们可以使用 ++ 操作符设置指定位置的值。

List 类型是一维的,但是可以组合类型来构建多维数据结构。这里我们创建了一个列表的列表来表示 2D 数组。

你也可以一次性创建和初始化多为数组。

将代码保存为 array_example.exs 并使用 elixir 运行:

$ elixir array_example.exs
emp: [0, 0, 0, 0, 0]
set: [0, 0, 0, 0, 100]
get: 100
len: 5
dcl: [1, 2, 3, 4, 5]
idx: [100, 0, 0, 400, 500]
2d: [[0, 1, 2], [1, 2, 3]]
2d: [[1, 2, 3], [1, 2, 3]]

注意 Elixir 中数组的打印格式是 [v1, v2, v3, ...]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值