参数复合类型中的恢复类型

tib*_*ibL 4 types julia

在Julia(<0.6)中,当创建参数化复合类型时MyType{T},是否有一种T从该类型的实例中恢复的简洁方法?

以他们的文档为例:

type Point{T}
    x::T
    y::T
end
Run Code Online (Sandbox Code Playgroud)

我可以创建一个对象p = Point(5.0,5.0),T这里将匹配,Float64以便相应的对象是一个Point{Float64}.有一个干净的方式来恢复Float64吗?

我可以

typeof(p.x)
Run Code Online (Sandbox Code Playgroud)

但感觉这不是正确的事情.

avi*_*iks 10

如果需要type参数,则应定义参数方法.这是访问type参数的唯一正确方法.

所以对于Point,

function doSomething{T}(p::Point{T}) 
    // You have recovered T  
    println(T)
end
Run Code Online (Sandbox Code Playgroud)