Julia 新手,浏览手册并在方法下找到此示例:
julia> mytypeof(x::T) where {T} = T
mytypeof (generic function with 1 method)
Run Code Online (Sandbox Code Playgroud)
当您使用 的值调用此方法时x,它会返回类型:
julia> mytypeof(1)
Int64
julia> mytypeof(1.0)
Float64
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么这会返回一个值?换句话说,隐含的返回值在哪里?
你应该阅读
mytypeof(x::T) where {T} = T
Run Code Online (Sandbox Code Playgroud)
作为
(mytypeof(x::T) where {T}) = T
Run Code Online (Sandbox Code Playgroud)
也就是说,= T不是where条款的一部分;它是函数的 RHS。
在 Julia 中,默认情况下会自动返回函数体的最后一个值。
在您的情况下,函数体只是T. 因此,T被退回。(想想它实际上是return T。)
如果你不想返回任何东西,你可以return nothing。