Scala:如何将隐式参数应用于不同的范围?
我不知道为什么我的隐式不在范围内。下面是一个测试:Scala:如何将隐式参数应用于不同的范围?,scala,Scala,我不知道为什么我的隐式不在范围内。下面是一个测试: package test object Main extends App { import fp._ def foo(a: Int)(implicit b: B0) = a + b.x print(foo(1)) } 差异包中的组件: package fp trait Components { implicit val b0: B0 = B0(2) } object Components extends Compone
package test
object Main extends App {
import fp._
def foo(a: Int)(implicit b: B0) = a + b.x
print(foo(1))
}
差异包中的组件:
package fp
trait Components {
implicit val b0: B0 = B0(2)
}
object Components extends Components
sealed trait B
case class B0(x: Int) extends B
我犯的错误
could not find implicit value for parameter b: fp.B0
print(foo(1))
^
有没有办法解决这个问题?你需要这样做
import fp.Components._
或者在隐式范围内定义隐式值b0
,例如在b0
的伴随对象或包对象内
以下是一些阅读材料: