Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Types julia中包装器类型的比较_Types_Julia - Fatal编程技术网

Types julia中包装器类型的比较

Types julia中包装器类型的比较,types,julia,Types,Julia,我有一堆带有层次结构的参数化单例结构,我需要建立一个比较操作来确定这些单例的列表是否“唯一”。其中,使用数组和元组类型和所需函数myequal在主(o包装器)类型之间进行比较,忽略参数类型: myequal(Array{Int64,1},Array{Int64,2}) #true, because both are Arrays myequal(Array{Int64,1},Tuple{Int64,Int64}) #false 定义myequal的一个选项是使用类型的内部字段 function

我有一堆带有层次结构的参数化单例结构,我需要建立一个比较操作来确定这些单例的列表是否“唯一”。其中,使用
数组
元组
类型和所需函数
myequal
在主(o包装器)类型之间进行比较,忽略参数类型:

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)
返回一个带有类型名称的
符号,该类型名称正是您所需要的

julia> nameof(Vector{Int})
:Array

julia> nameof(Matrix{Float64})
:Array

现在,您可以使用这些
符号
s进行比较。

所有
数组{Int64,N}中的N
类型比较是否与此函数相等?那么两个
Tuple
参数呢——它们的比较结果是否相同?您的实现似乎表明了这一点。是的,基本上比isequal更严格,因为主要用途是比较单例