Julia:效率和指示参数类型
我有三个关于指定函数参数和输出类型的相关问题。我正在定义一个希望多次调用的函数 f,因此我希望尽可能提高效率。我的函数定义如下所示:
function f(x, y)
...
return z
end
我知道这x将是一个数组{Float64,1},y将是一个数组{Float64,2},z并将是一个 Float64。
我的问题是:
- 在函数定义中指定输入类型是否有效率优势,即
function f(x::Array{Float64}, y::Array{Float64})? - 通过指定
x一维和二维来使类型更具体是否有任何额外的好处y,即function f(x::Array{Float64,1}, y::Array{Float64,2})? - 是否有效率的好处指定的类型
z,即function f(x::Array{Float64,1}, y::Array{Float64,2})::Float64?
非常感谢!如果这些问题之前已经得到解决,我们深表歉意。
回答
一般来说,没有(对所有问题)。Julia 的美妙之处在于它的编译器非常擅长即时为您解决这些问题。在性能技巧是寻找如何编写高效的代码,如确保您的功能最好的地方是型稳定。