Julia 具有用户定义类型的参数化类型

Julia 具有用户定义类型的参数化类型,julia,Julia,假设我有一个参数化类型: type MyType{T} var1 end 在大多数情况下,T是一个简单的整数,这没有问题。但是,有时T是单例类型的实例,如: type Joker end 因此,我想实例化MyType{Joker()}(4),但我有以下错误消息: ERROR: type: apply_type: in MyType, expected Type{T<:Top}, got Joker 错误:type:apply\u type:在MyType中,预期的类型{T回

假设我有一个参数化类型:

type MyType{T}
     var1
end
在大多数情况下,T是一个简单的整数,这没有问题。但是,有时T是单例类型的实例,如:

type Joker end
因此,我想实例化
MyType{Joker()}(4)
,但我有以下错误消息:

ERROR: type: apply_type: in MyType, expected Type{T<:Top}, got Joker
错误:type:apply\u type:在MyType中,预期的类型{T回答这里:

有两种解决方案:

  • 使用类型Joker而不是实例Joker():
    MyType{Joker}(3)
  • 或者使小丑类型不可变
    不可变小丑结束
    然后使用
    MyType{Joker()}(3)
由于
Joker
类型中没有字段,因此我认为第一个字段更实用