Elixir中怎么自定义的数据结构和类型

1559
2024/5/15 12:22:08
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Elixir中,可以使用defstruct关键字来定义自定义数据结构,使用@type注解来定义自定义类型。

以下是一个例子,定义一个包含姓名和年龄的自定义数据结构Person,并定义一个类型person

defmodule CustomTypes do
  @enforce_keys [:name, :age]
  
  defstruct [:name, :age]
  
  @type person :: %__MODULE__{
    name: String.t(),
    age: integer()
  }
end

在上面的示例中,defstruct [:name, :age]定义了一个包含nameage字段的自定义数据结构Person@type person :: %__MODULE__{name: String.t(), age: integer()}定义了一个person类型,指定了name字段为字符串类型,age字段为整数类型。

可以在代码中使用定义的数据结构和类型:

defmodule Example do
  import CustomTypes

  def create_person(name, age), do: %Person{name: name, age: age}

  def print_person(%person{name: name, age: age}) do
    IO.puts "Name: #{name}, Age: #{age}"
  end

  def print_person(%{name: name, age: age}), do: IO.puts "Name: #{name}, Age: #{age}"
end

person = Example.create_person("Alice", 30)
Example.print_person(person)

Example模块中使用了定义的Person数据结构和person类型,并创建了一个person实例并输出其值。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: Elixir与Erlang之间的异同点是什么