我想知道Julia是否具有轻松内置的功能来传递函数中用于函数的参数?
例如,
我正在使用Gadfly,但我想创建一个可以绘制特定图的函数,比方说,该函数使用已经指出的图进行折线图绘制。
因此,一个可行的例子
using Gadfly, Random
Random.seed!(50)
x = randn(10)
y = 10 * x .+ 2 .+ randn(10)/10
function dummy1(x, y; plotOptionsToPass...)
plot(x = x, y = y, Geom.point, Geom.line; plotOptionsToPass...)
end
我希望能够传递所有不同类型的Gadfly绘图选项,例如
dummy1(x, y; Theme(panel_fill = nothing))
以便使dummy1函数变成类似
plot(x = x, y = y, Geom.point, Geom.line; Theme(panel_fill = nothing))
无需我实际预先指定Gadfly允许plot()
采取的所有类型的选项。
答案 0 :(得分:1)
不知道要做什么,但是也许可以帮助您了解可以在dummy1
中定义一个新函数并返回它。继承的功能将使用较少的参数。 dummy1
成为绘图函数“构造函数”。
function dummy1(;plotOptionsToPass...)
function foo(x, y)
plot(x = x, y = y, Geom.point, Geom.line; plotOptionsToPass...)
end
return foo
end
# create new drawing function
new_artist = dummy1(Theme(panel_fill = nothing))
# draw something
new_artist(x, y)