假设我有参数类型:
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
阅读此消息,我理解类型的参数必须在“顶部”定义...这似乎是正确的,而MyType{MyType{4}(3)}(2)
会抛出类似的错误消息。
在文档中:http://julia.readthedocs.org/en/latest/manual/types/#man-parametric-types没有提到这样的限制(或者我没有找到它!)。
如何让MyType{Joker()}(4)
以我想要的方式工作?
答案 0 :(得分:0)
在这里回答:https://groups.google.com/forum/?fromgroups=#!topic/julia-users/gwgj_Mne2eY
有两种解决方案:
MyType{Joker}(3)
,immutable Joker end
然后使用MyType{Joker()}(3)
。由于Joker
类型中没有字段,我认为第一个字段更实用。