结构体

Struct 是一种自定义数据类型,用于表示一组相关字段的数据结构。优点:

  1. 命名字段:结构体中的字段都有名称,因此你可以通过字段名称来访问和操作数据。

  2. 默认值:你可以为结构体字段指定默认值,确保结构体实例的字段总是有初始值。

  3. 不可变性:结构体是不可变的,这意味着一旦创建了一个结构体实例,你不能直接修改它的字段值。相反,你需要创建一个新的结构体实例,其中的字段值被更新。

  4. 模式匹配:你可以使用模式匹配来轻松地访问和解构结构体的字段。

可以使用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

 

posted @   How_Many  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示