小编ail*_*luj的帖子

在 Julia 中的 slurping 运算符 (args...) 之后调度参数

您将如何实现这样的功能:

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 上调度。

这有可能吗?

function multiple-dispatch julia

8
推荐指数
1
解决办法
263
查看次数

标签 统计

function ×1

julia ×1

multiple-dispatch ×1