小编fak*_*akl的帖子

Julia 中的函数重载 - 关键字参数

假设一个带有关键字的函数fun()像这样重载:

function fun(; a::Real)
    return a
end

function fun(; a::Vector)
    return a
end
Run Code Online (Sandbox Code Playgroud)

执行以下代码时,出现类型错误TypeError: in keyword argument a, expected Vector, got a value of type Int64::

fun(1) # TypeError
fun([1, 2])
Run Code Online (Sandbox Code Playgroud)

但是当函数fun()获得正常参数时,即:

function fun(a::Real)
    return a
end

function fun(a::Vector)
    return a
end
Run Code Online (Sandbox Code Playgroud)

然后在此处执行此代码片段:

fun(1) # -> 1
fun([1, 2]) # -> [1, 2]
Run Code Online (Sandbox Code Playgroud)

作品。

为什么第二个示例有效,但第一个示例无效?

overloading julia

2
推荐指数
1
解决办法
73
查看次数

标签 统计

julia ×1

overloading ×1