如何解决函数调用报错ERROR: MethodError: no method matching xxxxx(::Vector{Any})?
技术分享
发布于 2025-07-23 09:57:42
查看 3过去314天
问题现象
function to_UniqueArr1(Arr::Vector{String})::Vector{String}
ArrPath = String[]
ArrFiles = String[]
for A in Arr
B = split(A,'/')
if !(B[end] in ArrFiles)
push!(ArrPath, A)
push!(ArrFiles, string(B[end]))
end
end
return ArrPath
end
c = []
typeof(c)
a =to_UniqueArr1(c)
以上代码运行报错:MethodError: no method matching xxxxx(::Vector{Any})
解决方法
产生该报错信息是因为函数有两个输入参数,但在调用的时候只有一个参数。 因此,只需要把 ::后面的都去掉即可正常运行。
function to_UniqueArr2(Arr)
ArrPath = String[]
ArrFiles = String[]
for A in Arr
B = split(A,'/')
if !(B[end] in ArrFiles)
push!(ArrPath, A)
push!(ArrFiles, string(B[end]))
end
end
return ArrPath
end
c = []
typeof(c)
a =to_UniqueArr2(c)

所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境