【发布时间】:2020-10-27 06:02:34
【问题描述】:
我有一堆具有层次结构的参数单例结构,我需要建立一个比较操作来确定这些单例的列表是否是“唯一的”。其中比较主要(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
但不推荐使用内部未记录的字段。有没有规范的方法可以做到这一点?
【问题讨论】:
-
all
Array{Int64,N} where N类型是否与此函数相等?那么两个Tuple参数呢——它们也比较相等吗?您的实现似乎表明了这一点。 -
是的,基本上比 isequal 更严格,主要用于比较单例