溫馨提示×

Elixir中怎么自定義的數據結構和類型

小億
100
2024-04-16 12:22:08
欄目: 編程語言

在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實例并輸出其值。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女