繁体   English   中英

按 Julia 中的包装器类型进行比较

[英]comparison by wrapper type in julia

我有一堆带有层次结构的参数化单例结构,我需要建立一个比较操作来查找这些单例的列表是否“唯一”。 其中比较在主要(o 包装器)类型之间进行,忽略参数类型,使用ArrayTuple类型以及所需的函数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)返回一个带有类型名称的Symbol ,这正是您所需要的。

julia> nameof(Vector{Int})
:Array

julia> nameof(Matrix{Float64})
:Array

现在您可以使用这些Symbol进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM