gpt4 book ai didi

generics - 什么是 `ANY` ,它与 `Any` 有何不同?

转载 作者:行者123 更新时间:2023-12-04 11:35:18 24 4
gpt4 key购买 nike

在最近的 Julia 的 0.5 nightlies 中,我开始注意到名为 ANY 的类型参数。 ,限制为 Any 的子类型.
这当然总是正确的,因为所有类型都是 Any 的子类型

例如:

serialize(s::SerializationState, x::ANY<:Any) at serialize.jl:468
show(io::IO, x::ANY<:Any) at show.jl:85
methods(f::ANY<:Any) at reflection.jl:258
methods(f::ANY<:Any, t::ANY<:Any) at reflection.jl:247

那么发生了什么?
这是一种鼓励编译器在 JIT 中生成专用函数的技巧吗?

最佳答案

ANY是一种向编译器提示它不应该专门处理参数的技巧。否则,编译器将考虑在调用它们的所有参数的特定类型上专门化函数,这在某些情况下最终可能会生成大量不必要的代码。这是一种肮脏的黑客攻击,更通用的机制会更好,但它可以完成工作。

关于generics - 什么是 `ANY` ,它与 `Any` 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37180751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com