用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。