В Julia 1.0, как установить именованный кортеж только с одной парой ключ-значение?
Когда я бегу
t = (one = "one", two = 2)
typeof(t)
в REPL я получаю
NamedTuple{(:one, :two),Tuple{String,Int64}}
но когда я бегу
t = (one = "one")
typeof(t)
я получил String
как тип.
Можно ли установить именованный кортеж только с одним именованным значением, чтобы я мог получить доступ, например, к t[1], а также к t.one и получить возвращенное "one"?
1 ответ
Решение
Поставить запятую, т.е.
julia> t = (one = "one",)
(one = "one",)
julia> typeof(t)
NamedTuple{(:one,),Tuple{String}}
Причина по которой t = (one = "one")
не работает, потому что это эквивалентно t = one = "one"
, Таким образом, вы определяете две переменные со значением "один".
julia> t = (one = "one")
"one"
julia> typeof(t)
String
julia> typeof(one)
String