Eu tenho uma pergunta de novato. O que entendi é que uma struct terá campos e uma vez os passará por ordem. Como :
julia> struct Foo
bar
baz
end
julia> foo = Foo(1, 2)
Foo(1, 2)
Em algo como Makie, a estrutura principal é Figure()
. Todos os tutoriais mostram argumentos personalizados como cor de fundo, resolução ... etc.
f = Figure(backgroundcolor = :tomato)
Mas na doutrina não há menção a essas palavras-chave.
Agradeço antecipadamente
Acho que isso é uma duplicata de: Passe argumentos para @kwdef struct programaticamente
Mas para responder sua pergunta, como mostrado aí você pode ter campos de palavras-chave colocando a
Base.@kwdef
macro antesstruct
, ou seja:Então fazendo
Foo(baz=3)
devoluçõesFoo(nothing,3)
etc.Para responder à sua pergunta sobre o que eles fazem no
Makie
, aqui está o código relevante para criar figuras (do código-fonte do GitHub):Eles criam um dicionário com base nos argumentos da palavra-chave e depois os passam manualmente para a estrutura Figure, que é definida como:
Portanto, eles usam a
Figure
função para acessar os argumentos das palavras-chave e depois passam as palavras-chave apropriadas para aFigure
estrutura.