我对Julia很陌生,这让我疯狂:
type MyType{T<:Number}
x::T
y::T
end
Float64 <: Number # this is true
MyType{Float64} <: MyType{Number} #this is for some reason false
我当然希望,如果我通过使用抽象类型作为参数创建两个从相同参数类型派生的具体类型,另一个通过使用具体类型来创建,该具体类型是用于第一个的抽象类型的子类型派生,使用具体类型派生的类型将是使用抽象类型派生的类型的子类型。
这句话花了我一段时间才撰写。希望它是可理解的。
答案 0 :(得分:7)
这是预期的行为。
朱莉娅中的类型是不变的而不是协变或逆变。
有关更详细的说明,请参阅本手册的此部分:http://julia.readthedocs.org/en/latest/manual/types/#man-parametric-types