Bal*_*Sun 4 constructor types default-value parametric-polymorphism julia
对于具有参数类型字段的类型,例如:
struct Point{T <: AbstractFloat}
x::T
y::T
end
Run Code Online (Sandbox Code Playgroud)
如何制作一个使用所需类型创建默认值的外部构造函数?例如,我想要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))
Run Code Online (Sandbox Code Playgroud)