为什么在Julia中Array {Float64,1}不是Array {Real,1}的子类型?

时间:2019-06-24 11:21:08

标签: julia

我正在尝试编写Julia函数,该函数可以接受一维Int64和Float64数组作为输入参数。如何在不定义两个版本的情况下做到这一点,一个用于Int64,另一个用于Float64?

我尝试使用Array {Real,1}作为输入参数类型。但是,由于Array {Int64,1}不是Array {Real,1}的子类型,因此无法正常工作。

1 个答案:

答案 0 :(得分:-1)

一个真实,不安全的方法是,例如:


function square(x)
# The point is for element-wise operation
       out = x.*x
end


输出:

julia> square(2)
4

julia> square([2 2 2])
1×3 Array{Int64,2}:
 4  4  4