您将如何实现这样的功能:
function foo(a,b...,c)
println(a,b,c)
end
Run Code Online (Sandbox Code Playgroud)
foo(2,3,3,"last")
Run Code Online (Sandbox Code Playgroud)
=> a = 2 , b = (3,3) , c = "最后一个"
我不能使用类似的东西:
function foo(a,b...)
c = b[end]
println(a,b,c)
end
Run Code Online (Sandbox Code Playgroud)
因为我想在 c 上调度,即我想要有方法:
foo(a,b...,c::Foo)
Run Code Online (Sandbox Code Playgroud)
和
foo(a,b...,c::Bar)
Run Code Online (Sandbox Code Playgroud)
我也不能有这样的东西:
foo_wrapper(a,b...) = foo(a,b[1:end-1],b[end])
Run Code Online (Sandbox Code Playgroud)
因为我也想在 foo 上调度。
这有可能吗?