Geo*_*ris 1 types function function-call julia
(我指的是 Julia 0.5)假设我定义了一个函数:
f{T<:Real}(x::T=one(T), y::T=one(T)) = x+y
我想在指定类型时调用它,但不通过参数指定它。例如,我想做:
f{Float64}()
在控制台中,这给出了错误:
ERROR: TypeError: Type{...} expression: expected Type{T}, got #f
那么,是否可以在函数调用期间{}使用语法来调用任何函数(除了参数类型的构造函数之外) ?
编辑:我提出这个问题的原因是因为我想使用默认参数,但同时也指定类型,例如f{BigFloat}().
如果您不介意编写f(BigFloat)而不是f{BigFloat}(),您可以将函数定义更改为:
f{T}(args::T...) = f(T, args...)
f{T<:Real}(::Type{T}, x::T=one(T), y::T=one(T)) = x+y
Run Code Online (Sandbox Code Playgroud)
它允许您在必要时指定类型,同时仍然允许您编写f(1,2).