Julia:为什么这个函数会返回一个值?

lis*_*ons 4 julia

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)

我的问题是:为什么这会返回一个值?换句话说,隐含的返回值在哪里?

Fen*_*ang 8

你应该阅读

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。


crs*_*nbr 5

在 Julia 中,默认情况下会自动返回函数体的最后一个值。

在您的情况下,函数体只是T. 因此,T被退回。(想想它实际上是return T。)

如果你不想返回任何东西,你可以return nothing