假设我定义了以下内容:
type Func1 = PartialFunction[Int, String]
case class A(f: Int => String)
implicit def toA(func: Func1): A = A(func(_))
然后,我可能希望使用隐式转换,如下所示:
val a: A = {
case i: Int => i.toString
}
但现在这确实可以编译了。但是,显式使用该函数是可以的:
val a: A = toA({
case i: Int => i.toString
})
这是为什么?
1条答案
按热度按时间fdx2calv1#
也不编译:
扩展函数缺少参数类型
匿名函数的参数类型必须完全已知。(SLS 8.5)
预期类型为:
?
val f = {
根据Scaladoc的说法,工作代码是
如果想要隐式转换,请尝试