log*_*ick 5 julia
我在其他人的代码中看到了以下内容,但我从未用自己的代码编写过,因为我不明白发生了什么。
举个例子:
function add(x::T, y::T) where {T :< Integer}
我猜它T被转换为一个整数,然后用于显式输入x和y。但是为什么不直接做 x::Int64呢?是否where {T :< Integer}允许像Int32and这样的任何 Int 类型Int64?
T
x
y
x::Int64
where {T :< Integer}
Int32
Int64
Wol*_*olf 5
稍微扩展一下奥斯卡的回答:
Usingfunction add(x::T, y::T) where {T :< Integer}允许您向函数添加参数方法add(x, y)。您可以在Parametric Methods下的Julia 文档中更详细地了解这一点。
add(x, y)
这有两大优点:它允许您定义合理的通用方法(因为在许多情况下,整数的确切类型不会真正影响函数定义)。同时它允许您限制x, y对相同类型的调用,这可以提高类型稳定性并导致更高效的编译代码。
x, y
归档时间:
6 年,2 月 前
查看次数:
102 次
最近记录: