julia - 为什么 Array{Float64,1} 不是 Julia 中 Array{Real,1} 的子类型?
问题描述
我正在尝试编写一个 Julia 函数,它可以接受一维 Int64 和 Float64 数组作为输入参数。如果不定义两个版本,一个用于 Int64,另一个用于 Float64,我该如何做到这一点?
我尝试使用 Array{Real,1} 作为输入参数类型。但是,由于 Array{Int64,1} 不是 Array{Real,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
推荐阅读
- c# - 如何在 C# 中找出屏幕连接到的显卡?
- python - 如何从电子表格的值创建一堆 PDF?
- r - 从多个excel文件中提取一列并用R将它们连接到一个文件中
- layout - PyQT5:如何在 QGridLayout 中自动对齐小部件?
- sql - 自动化帐户更新 - 未显示正确的行 - SQL/SNOWFLAKE/MYSQL
- php - 无法从其他域获取 Lexik JWT 令牌
- python - SQLAlchemy mixins,如何从它们继承和变量关系
- sed - 从 yaml 文件中删除匹配的行
- sql-server - Azure SQL SCOPE_IDENTITY 为不同的表创建相同的 ID 列
- react-native - 根据链接对象数组的长度对 realm-js 结果进行排序