找到scala.Int(0)必需的Int 0
我是scala新手,我正在运行书本上的一些练习,准备实现一个列表 我有一个方法求和来添加列表中的所有数字。我使用TDD方法,所以首先我只返回0以使其失败。但是编译程序抱怨类型不匹配。它需要Int,但收到了scala.Int 投诉信息:找到scala.Int(0)必需的Int 0,scala,Scala,我是scala新手,我正在运行书本上的一些练习,准备实现一个列表 我有一个方法求和来添加列表中的所有数字。我使用TDD方法,所以首先我只返回0以使其失败。但是编译程序抱怨类型不匹配。它需要Int,但收到了scala.Int 投诉信息: MList.scala:17: error: type mismatch; found : scala.Int(0) required: Int 0 ^ one error found 所以我试着改成 def sum[scala.Int]
MList.scala:17: error: type mismatch;
found : scala.Int(0)
required: Int
0
^
one error found
所以我试着改成
def sum[scala.Int](as: MList[scala.Int]): scala.Int =
{
0
}
编译器抱怨说。不应存在于[scala.Int]中
我也尝试了0个新的INT0,INT0,INT0,新的int i来自C++,以匹配返回类型,但它也没有用。
scala.Int0和文本0之间有什么区别?是我忘了包含一些包,比如内置数字包吗?问题是,这里
def sum[Int](as: MList[Int]): Int = 0
^^^^^
您正在声明一个名为Int的新类型,它对scala.Int进行阴影处理。
sum方法是泛型的,Int是其类型参数的名称
def sum(as: MList[Int]): Int = 0
只需删除类型参数
def sum(as: MList[Int]): Int = 0
问题是,这里
def sum[Int](as: MList[Int]): Int = 0
^^^^^
您正在声明一个名为Int的新类型,它对scala.Int进行阴影处理。
sum方法是泛型的,Int是其类型参数的名称
def sum(as: MList[Int]): Int = 0
只需删除类型参数
def sum(as: MList[Int]): Int = 0
谢谢它起作用了。因为我之前实现的方法是def apply[A]as:A*:MList[A]={…},所以我只是将A替换为Int.HahaThanks!它起作用了。因为我之前实现的方法是def apply[A]as:A*:MList[A]={…},所以我只是将A替换为Int.Haha