结构体
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构