Elixir语言中 Kernel.struct
相关用法介绍如下。
用法:
struct(struct, fields \\ [])
@spec struct(module() | struct(), Enum.t()) :: struct()
创建和更新结构。
struct
参数可以是一个原子(定义 defstruct
)或 struct
本身。第二个参数是在枚举期间发出双元素元组(键值对)的任何
。Enumerable
中不存在于结构中的键会被自动丢弃。请注意,键必须是原子,因为在定义结构时只允许使用原子。如果 Enumerable
中的键重复,则将采用最后一个条目(与 Enumerable
的行为相同)。Map.new/1
此函数对于动态创建和更新结构以及将映射转换为结构很有用;在后一种情况下,仅在Map中插入适当的:__struct__
字段可能是不够的,应该使用
。struct/2
例子
defmodule User do
defstruct name: "john"
end
struct(User)
#=> %User{name: "john"}
opts = [name: "meg"]
user = struct(User, opts)
#=> %User{name: "meg"}
struct(user, unknown: "value")
#=> %User{name: "meg"}
struct(User, %{name: "meg"})
#=> %User{name: "meg"}
# String keys are ignored
struct(User, %{"name" => "meg"})
#=> %User{name: "john"}
相关用法
- Elixir Kernel.spawn_monitor用法及代码示例
- Elixir Kernel.spawn用法及代码示例
- Elixir Kernel.sigil_r用法及代码示例
- Elixir Kernel.sigil_c用法及代码示例
- Elixir Kernel.sigil_w用法及代码示例
- Elixir Kernel.sigil_N用法及代码示例
- Elixir Kernel.sigil_D用法及代码示例
- Elixir Kernel.sigil_R用法及代码示例
- Elixir Kernel.spawn_link用法及代码示例
- Elixir Kernel.sigil_s用法及代码示例
- Elixir Kernel.sigil_C用法及代码示例
- Elixir Kernel.sigil_T用法及代码示例
- Elixir Kernel.send用法及代码示例
- Elixir Kernel.sigil_U用法及代码示例
- Elixir Kernel.sigil_W用法及代码示例
- Elixir Kernel.sigil_S用法及代码示例
- Elixir Kernel.SpecialForms.case用法及代码示例
- Elixir Kernel.round用法及代码示例
- Elixir Kernel.left / right用法及代码示例
- Elixir Kernel.put_in用法及代码示例
- Elixir Kernel.tl用法及代码示例
- Elixir Kernel.left - right用法及代码示例
- Elixir Kernel.tuple_size用法及代码示例
- Elixir Kernel.defexception用法及代码示例
- Elixir Kernel.to_charlist用法及代码示例
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 Kernel.struct(struct, fields \\ [])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。