【发布时间】:2021-11-19 16:01:01
【问题描述】:
我现在正在观看 Lionel Zoubritzky 在 JuliaCon 2018 上的演讲 Engineering Julia for Speed。演讲中提到了一个名为 removetype 的函数,大约在 13:24。我想知道如何定义该功能?谢谢。
【问题讨论】:
标签: julia
我现在正在观看 Lionel Zoubritzky 在 JuliaCon 2018 上的演讲 Engineering Julia for Speed。演讲中提到了一个名为 removetype 的函数,大约在 13:24。我想知道如何定义该功能?谢谢。
【问题讨论】:
标签: julia
这是一个相对较旧的视频,所以我不确定那里使用的是哪个 Julia 版本,但目前这个函数是 Base.inferencebarrier(至少从 Julia 1.6 开始 - 因为它没有导出它不是公共的一部分API 并且不应被视为保证将来会定义)。
幸运的是,自己定义很容易(我正在复制粘贴当前定义):
inferencebarrier(@nospecialize(x)) = Ref{Any}(x)[]
该函数确保编译器无法对其返回类型执行类型推断。如果您想避免过度重新编译代码(最大的好处是廉价的高阶函数),它最有用。
【讨论】: