【问题标题】:Define a function to remove object type in Julia?定义一个函数来删除 Julia 中的对象类型?
【发布时间】:2021-11-19 16:01:01
【问题描述】:

我现在正在观看 Lionel Zoubritzky 在 JuliaCon 2018 上的演讲 Engineering Julia for Speed。演讲中提到了一个名为 removetype 的函数,大约在 13:24。我想知道如何定义该功能?谢谢。

【问题讨论】:

    标签: julia


    【解决方案1】:

    这是一个相对较旧的视频,所以我不确定那里使用的是哪个 Julia 版本,但目前这个函数是 Base.inferencebarrier(至少从 Julia 1.6 开始 - 因为它没有导出它不是公共的一部分API 并且不应被视为保证将来会定义)。

    幸运的是,自己定义很容易(我正在复制粘贴当前定义):

    inferencebarrier(@nospecialize(x)) = Ref{Any}(x)[]
    

    该函数确保编译器无法对其返回类型执行类型推断。如果您想避免过度重新编译代码(最大的好处是廉价的高阶函数),它最有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-05
      • 1970-01-01
      • 2017-03-19
      • 2017-09-03
      • 2012-02-26
      • 1970-01-01
      • 1970-01-01
      • 2021-07-11
      相关资源
      最近更新 更多