ジュリアでディクショナリを使って複数のキーワード引数を一度に渡す方法
説明
ディクショナリとスプラットオペレーターを使うと、複数のキーワード引数を一度に関数に渡すことができる。
このテクニックは、複数のグラフに同じオプションを与えたいときに便利だ。もし全てのグラフに同じオプションを設定する場合、関数default
を使えば簡単だが、一つでも異なる形式で描画する必要がある場合、default
を使うのは逆に不便になる。
コード
Dict(:keyward=>value)
形式でディクショナリを作り、関数に渡すときにスプラットオペレーターを使用する。このとき必ずディクショナリの前にセミコロン ;
を入力する必要がある。;
はキーワード引数と通常の引数を区別する役割を果たす。また、キーワード名は必ず:keyward
のようにシンボルで入力しなければならない。
julia> function test(x; a=1, b=2, c=3)
println("a+$x=$(a+x)")
println("b+$x=$(b+x)")
println("c+$x=$(c+x)")
end
test (generic function with 1 method)
julia> test(10, a=1, b=2, c=3)
a+10=11
b+10=12
c+10=13
julia> options = Dict(:a=>1, :b=>2, :c=>3)
Dict{Symbol, Int64} with 3 entries:
:a => 1
:b => 2
:c => 3
julia> test(10; options...)
a+10=11
b+10=12
c+10=13
julia> using Plots
julia> kwargs = Dict(:ylims => (-0.5,0.5), :lw => 4, :lc => :red)
Dict{Symbol, Any} with 3 entries:
:ylims => (-0.5, 0.5)
:lc => :red
:lw => 4
julia> p₁ = plot(randn(20); kwargs...)
julia> p₂ = plot(randn(20); kwargs...)
julia> p₃ = plot(randn(20))
julia> plot(p₁, p₂, p₃)
環境
- OS: Windows11
- Version: Julia 1.10.0, Plots v1.40.3