Struct 是一种自定义数据类型,用于表示一组相关字段的数据结构。优点:
-
命名字段:结构体中的字段都有名称,因此你可以通过字段名称来访问和操作数据。
-
默认值:你可以为结构体字段指定默认值,确保结构体实例的字段总是有初始值。
-
不可变性:结构体是不可变的,这意味着一旦创建了一个结构体实例,你不能直接修改它的字段值。相反,你需要创建一个新的结构体实例,其中的字段值被更新。
-
模式匹配:你可以使用模式匹配来轻松地访问和解构结构体的字段。
可以使用defstruct
宏来定义和使用结构体(Structs)
例子:
defmodule Person do defstruct name: "", age: 0 end # 创建结构体实例 person = %Person{name: "Alice", age: 30} # 访问结构体字段 name = person.name age = person.age # 模式匹配 %Person{name: name, age: age} = person IO.puts("Name: #{name}, Age: #{age}")
# 更新结构体
jane = %{john | name: "Jane"}
%__MODULE__{name: name, token: token}
__MODULE__
是一个特殊的占位符,会被替换为当前模块的名称。这个语法通常用于在当前模块内创建一个特定的结构体的实例
例子:
defmodule MyModule do defstruct name: "", token: "" def create_struct(name, token) do %__MODULE__{name: name, token: token} end end
标签:__,name,age,person,token,结构 From: https://www.cnblogs.com/corahed1w2/p/17729820.html