Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Generics 为什么当扩展类在Scala中是泛型时隐式失败?_Generics_Scala_Implicit Conversion - Fatal编程技术网

Generics 为什么当扩展类在Scala中是泛型时隐式失败?

Generics 为什么当扩展类在Scala中是泛型时隐式失败?,generics,scala,implicit-conversion,Generics,Scala,Implicit Conversion,为什么以下代码有效: class X class A(implicit c: X) class B(arg: Int)(implicit c: X) extends A class C(arg: Int)(implicit c: X) extends B(arg) 但不是这个: class X class A(implicit c: X) class B[T](arg: T)(implicit c: X) extends A class C(arg: Int)(implicit c: X)

为什么以下代码有效:

class X

class A(implicit c: X)
class B(arg: Int)(implicit c: X) extends A
class C(arg: Int)(implicit c: X) extends B(arg)
但不是这个:

class X

class A(implicit c: X)
class B[T](arg: T)(implicit c: X) extends A
class C(arg: Int)(implicit c: X) extends B(arg)
失败,出现以下错误:

错误:找不到参数c:core.X的隐式值

类C(arg:Int)(隐式C:X)扩展了B(arg)


如果您在调用
B
的构造函数时帮助类型推断器,那么它似乎可以工作:

class X

class A(implicit c: X)
class B[T](arg: T)(implicit c: X) extends A
class C(arg: Int)(implicit c: X) extends B[Int](arg)

所以它看起来不像是一个基本的限制。但是您没有包含的错误消息非常没有帮助,无法找到参数c:X的隐式值。

-1。当您忽略错误消息时,它没有帮助。@Antoras您是对的。。。修正了。两个都在2.9.1.final上为我工作。您使用的是哪个版本?@RexKerr➜ ecaalyx网关git:(逻辑)scala-版本scala代码运行程序版本2.9.1.final-版权所有2002-2011,LAMP/EPFL