當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Julia Core.NamedTuple用法及代碼示例


用法:

NamedTuple

顧名思義,NamedTuple 被命名為 Tuple 。也就是說,它們是一個 tuple-like 值集合,其中每個條目都有一個唯一的名稱,表示為 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 開始,可以使用帶有多個 Symbolgetindex 方法。

相關用法


注:本文由純淨天空篩選整理自julialang.org 大神的英文原創作品 Core.NamedTuple — Type。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。