logo

ジュリアでディクショナリを使って複数のキーワード引数を一度に渡す方法 📂ジュリア

ジュリアでディクショナリを使って複数のキーワード引数を一度に渡す方法

説明

ディクショナリスプラットオペレーターを使うと、複数のキーワード引数を一度に関数に渡すことができる。

このテクニックは、複数のグラフに同じオプションを与えたいときに便利だ。もし全てのグラフに同じオプションを設定する場合、関数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