gpt4 book ai didi

julia - Vector {AbstractString}函数参数将不接受julia中的Vector {String}输入

转载 作者:行者123 更新时间:2023-12-04 03:51:56 25 4
gpt4 key购买 nike

Julia中的以下代码:

function foo(a::Vector{AbstractString})  
end
foo(["a"])

给出以下错误:
ERROR: MethodError: no method matching foo(::Array{String,1})
Closest candidates are:
foo(::Array{AbstractString,1}) at REPL[77]:2

即使下面的代码运行,按预期方式:
function foo(a::Vector{String})  
end
foo(["a"])

而且, AbstractString通常与 String相匹配,如下所示:
function foo(::AbstractString)  
end
foo("a")

如果我有 Vector{AbstractString}元素,如何调用带有 String参数的函数?

最佳答案

您需要这样编写函数签名:

function foo{S<:AbstractString}(a::Vector{S})
# do stuff
end

在Julia 0.6及更高版本上,也可以改写
function foo(a::Vector{<:AbstractString})
# do stuff
end

这是Julia中参数类型不变的结果。有关更多详细信息,请参见手册中的 chapter on types

关于julia - Vector {AbstractString}函数参数将不接受julia中的Vector {String}输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21465838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com