julia 中的“where T”在 T 之后没有任何说明的情况下做什么?

Ros*_*rbe 4 julia

我是朱莉娅的新手,我无法找到where对我来说完全有意义的解释。所以我明白,例如 function f(x::T, y::T) where {T<:Number} = true要求 x 和 y 参数都是某种数字类型。

但是还有其他函数看起来像function f(X::AbstractMatrix{T}) where T没有任何关于 T 应该是什么的规范。有人可以解释一下它在做什么以及我什么时候想使用这种语法吗?

Osc*_*ith 5

where T没有其他任何东西只是where {T<:Any}换句话说,对所有人都是如此T,但是 Julia 需要你写一些东西,以便定义 `T。

  • 您可以在后一个定义的函数体内访问“T”。就是这样。 (3认同)
  • 另一个微小的区别是 Julia 将忽略使用“where T”方法定义的“@nospecialize”。 (3认同)