在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]
定义了一个包含name
和age
字段的自定义数据结构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
实例并输出其值。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/989687.html