我有一堆带层次结构的参数化单例结构,我需要建立一个比较操作,以确定这些单例的列表是否为"独特";。其中,比较是在主(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)
返回一个Symbol
,其类型名称正是您所需要的。
julia> nameof(Vector{Int})
:Array
julia> nameof(Matrix{Float64})
:Array
现在您可以使用这些Symbol
进行比较。