首页 > 解决方案 > 为什么 Array{Float64,1} 不是 Julia 中 Array{Real,1} 的子类型?

问题描述

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

我尝试使用 Array{Real,1} 作为输入参数类型。但是,由于 Array{Int64,1} 不是 Array{Real,1} 的子类型,因此这是行不通的。

标签: julia

解决方案


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


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


推荐阅读