用法:
NamedTuple
顾名思义,NamedTuple
被命名为
。也就是说,它们是一个 tuple-like 值集合,其中每个条目都有一个唯一的名称,表示为 Tuple
。与 Symbol
Tuple
一样,NamedTuple
是不可变的;名称和值都不能在构造后就地修改。
可以使用字段访问语法来访问与命名元组中的名称关联的值,例如x.a
,或使用
,例如getindex
x[:a]
或 x[(:a, :b)]
。名称的元组可以使用
获得,值的元组可以使用 keys
获得。values
注意
对 NamedTuple
的迭代会生成不带名称的 values
。 (参见下面的示例。)要迭代 name-value 对,请使用
函数。pairs
宏可用于方便地声明@NamedTuple
NamedTuple
类型。
例子
julia> x = (a=1, b=2)
(a = 1, b = 2)
julia> x.a
1
julia> x[:a]
1
julia> x[(:a,)]
(a = 1,)
julia> keys(x)
(:a, :b)
julia> values(x)
(1, 2)
julia> collect(x)
2-element Vector{Int64}:
1
2
julia> collect(pairs(x))
2-element Vector{Pair{Symbol, Int64}}:
:a => 1
:b => 2
与如何以编程方式定义关键字参数的方式类似,可以通过给出一对 name::Symbol => value
或在元组文字内的分号后生成这样的对的迭代器来创建命名元组:
julia> (; :a => 1)
(a = 1,)
julia> keys = (:a, :b, :c); values = (1, 2, 3);
julia> (; zip(keys, values)...)
(a = 1, b = 2, c = 3)
与关键字参数一样,标识符和点表达式隐含名称:
julia> x = 0
0
julia> t = (; x)
(x = 0,)
julia> (; t.x)
(x = 0,)
Julia 1.5
从 Julia 1.5 开始,标识符和点表达式中的隐式名称可用。
Julia 1.7
从 Julia 1.7 开始,可以使用带有多个 Symbol
的 getindex
方法。
相关用法
- Julia Core.NTuple用法及代码示例
- Julia Core.ifelse用法及代码示例
- Julia Core.isa用法及代码示例
- Julia Core.typeof用法及代码示例
- Julia Core.UnionAll用法及代码示例
- Julia Core.nfields用法及代码示例
- Julia Core.Function用法及代码示例
- Julia Core.DomainError用法及代码示例
- Julia Core.undef用法及代码示例
- Julia Core.UndefVarError用法及代码示例
- Julia Core.isdefined用法及代码示例
- Julia Core.invoke用法及代码示例
- Julia Core.Array方法用法及代码示例
- Julia Core.getfield用法及代码示例
- Julia Core.ErrorException用法及代码示例
- Julia Core.Vararg用法及代码示例
- Julia Core.@big_str用法及代码示例
- Julia Core.Type用法及代码示例
- Julia Core.Task用法及代码示例
- Julia Core.Union用法及代码示例
- Julia Core.AssertionError用法及代码示例
- Julia Core.Ref用法及代码示例
- Julia Core.BoundsError用法及代码示例
- Julia Core.Float64方法用法及代码示例
- Julia Core.InexactError用法及代码示例
注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Core.NamedTuple — Type。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。