types - 在 Julia 中按包装器类型进行比较
问题描述
我有一堆具有层次结构的参数单例结构,我需要建立一个比较操作来确定这些单例的列表是否是“唯一的”。其中比较是在主要(o 包装器)类型之间,忽略参数类型,使用Array
和Tuple
类型以及和所需的功能myequal
:
myequal(Array{Int64,1},Array{Int64,2}) #true, because both are Arrays
myequal(Array{Int64,1},Tuple{Int64,Int64}) #false
定义 myequal 的一种选择是使用类型的内部字段
function myequal(a::Type,b::Type)
ta = a.name
tb = b.name
return ta == tb
end
但是不推荐使用内部未记录的字段。有没有规范的方法来做到这一点?
解决方案
nameof(myType)
返回 a Symbol
,其类型名称正是您所需要的。
julia> nameof(Vector{Int})
:Array
julia> nameof(Matrix{Float64})
:Array
现在您可以使用这些Symbol
s 进行比较。
推荐阅读
- ios - 通过 NFC Swift/iOS 连接蓝牙设备
- python - 使用 Python 生成器的直方图问题?
- reactjs - Reactjs wordpress 为 SEO 预渲染现有的客户端应用程序
- sql - 更新 sql 获取多于一行的选择
- java - 如何在 javaFX 中限制/设置帧速率?
- python - 创建列表时检查列表中的值的复杂性
- ios - 如何以编程方式快速定位图层?
- laravel - App\Http\Requests\UserUpdateRequest::user() 的声明应该与 Illuminate\Http\Request::user($guard = NULL) 兼容
- arduino - Win10 <-> USB <-> Arduino - 与 Autohotkey 通信的问题
- objective-c - 在 Objective-C 目标中使用 Swift 的问题