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进行比较。

最新更新