gpt4 book ai didi

Scala 隐式作用域需要双重导入

转载 作者:行者123 更新时间:2023-12-05 00:37:03 25 4
gpt4 key购买 nike

我不明白为什么在下面的代码中引入了 import b._ 的导入( implicit def )必须同时出现在位置 1 和位置 2 才能工作。

package a {
abstract class Base {}
}

package b {
import a._

class Derived(i: Int) extends Base {}

object b {
implicit def i2d(i: Int): Derived = new Derived(i)
}
}

import a._
// position 1
import b._

object test extends App {
// position 2
import b._

def doIt(base: Base) {
println("works")
}

doIt(1)
}

最佳答案

在位置 1,您从包 b 导入所有内容,在位置 2,您从对象 b 导入所有内容,其中包括隐式 def。你可以只import b.b._在位置 2。

关于Scala 隐式作用域需要双重导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7465996/

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