gpt4 book ai didi

debugging - 是否有一种系统的方法来发现哪些隐式定义在范围内,以及哪些隐式定义在特定点绑定(bind)?

转载 作者:行者123 更新时间:2023-12-02 21:41:54 26 4
gpt4 key购买 nike

通常不需要关注 Scala 中的隐式参数,但有时了解编译器如何自动提供它们非常有帮助。不幸的是,这种理解似乎很难获得!

Is there a general method to discover how an implicit parameter has been provided, in a given piece of code?

理想情况下,有一天 IDE 集成会以某种方式提供此信息,但我预计现在我必须更深入地挖掘。是否有某种方法可以要求编译器准确解释它在任何给定点选择的隐式定义?这可以从其他编译器输出间接破译吗?

举个例子,我想知道如何自己计算 implicit bf: CanBuildFrom[Repr, B, That] 在哪里TraversableLike.map 的参数来自,无需阅读类似 this one 的问题关于堆栈溢出!

最佳答案

  1. 将选项 -Xprint:typer 添加到 scalac 命令行。这会在打字机编译阶段之后打印程序树。这最适合一个简短的、独立的示例。您也可以将其传递给 scalac。这确实是 Scala 迈向自力更生的一大步!
  2. 正如 Randall 所提到的,IntelliJ 使用 CTRL-ALT-SHIFT-I 显示范围内和选定的隐式 View 。等一两个月,隐含的论点可能会得到类似的支持。

关于debugging - 是否有一种系统的方法来发现哪些隐式定义在范围内,以及哪些隐式定义在特定点绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3179415/

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