在 Julia 中,抽象类型的分派与抽象类型的参数子集之间有什么区别?

Ale*_*lec 3 performance function dispatch julia

之间是否存在功能或性能差异

  • myfunction(x::Real), 和
  • myfunction(x::T) where {T<:Real}

在本例中,Real是一个抽象类型,显然具有具体的子类型,例如Float64Int

有理由选择其中一种而不是另一种吗?

Osc*_*ith 5

最大的区别是可以T在函数定义中引用。另一个区别是,对于Functions 和Varargs(但没有其他类型),myfunction(x::T) where {T}强制专业化。

除此之外,它们完全相同。