2
假設我有不同的名稱Julia - 將關鍵字參數傳遞給另一個函數?
foo(x, y; a=1, b=2) = (a + b)/(x + y)
bar(x, y; c=3, d=4) = (x - y) * (c - d)
而且假設我有第三個功能是接受一個函數作爲參數的關鍵字參數一系列功能。我希望能夠在調用第三個函數時將任何關鍵字參數傳遞給前兩個函數中的一個。
master(x, y; fun::Function=foo, args...) = fun(x, y, args...)
我試圖使用關鍵字參數調用master
函數時出現問題。
julia> master(pi, e, fun=bar)
-0.423310825130748
julia> master(pi, e, fun=bar, c=4)
ERROR: MethodError: `bar` has no method matching bar(::Irrational{:π}, ::Irrational{:e}, ::Tuple{Symbol,Int64})
Closest candidates are:
bar(::Any, ::Any)
有沒有辦法通過關鍵字參數而不必迭代檢查參數名稱?
請讓我知道如果問題不清楚,我很樂意澄清。我查找了其他問題,但是我所看到的解決方案通常顯示如何獲取名稱 - 值對,而不是如何將它們傳遞給其他具有關鍵字參數的函數
你需要把';'潑灑關鍵字參數之前。所以也許試試這個'fun(x,y; args ...)' – spencerlyon2
Huzzah!這正是我所需要的,非常感謝你,並且道歉,如果這太簡單的問題。誠實地搜索高低,並且必須錯過那個小細節。 –