如何制作为参数类型字段创建默认值的构造函数

对于具有参数类型字段的类型,例如:

struct Point{T <: AbstractFloat}
    x::T
    y::T
end

如何制作一个使用所需类型创建默认值的外部构造函数?例如,我想要Point()which 不带任何参数来 create Point{T}(0.0, 0.0),我仍然可以通过某种方式指定TasFloat64或其他类型。

回答

这是你想要的吗?

julia> struct Point{T <: AbstractFloat}
           x::T
           y::T
       end

julia> Point{T}() where T = Point{T}(zero(T), zero(T))

julia> Point{Float64}()
Point{Float64}(0.0, 0.0)

julia> Point{Float32}()
Point{Float32}(0.0f0, 0.0f0)

julia> Point{Float16}()
Point{Float16}(Float16(0.0), Float16(0.0))


以上是如何制作为参数类型字段创建默认值的构造函数的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>