我想要一个函数,它接受一个数字数组并对它们进行一些运算。为此,我创建了函数
function squarearray(numinarray::Vector{Number})
numinarray[1]^2
end
但当我试着用来称呼它时
print(squarearray(Vector([1.0])))
它导致了一个错误:
错误:LoadError:MethodError:没有匹配squearray(::Vector{Float64}
Float64
是Number
的一个子类型,为什么这不起作用?我知道我可以在函数中指定它在浮点数组中接受的值,但我也希望函数能处理int。
谢谢!
-Diego
;数字";类型为抽象。这意味着没有数据可以直接属于Number类型。但是,正如您所指出的,Number有具体的子类型,例如Float64。如果您更改
numinarray::Vector{<:Number} #limits to only subtypes of Number
或
numinarray::Vector{Float64} #limits to Float64 type
或
numinarray::Vector #Does not limit inputs
你应该避免这个问题。