为什么List [Int,Int]不是有效的Scala类型?

时间:2016-04-05 11:31:38

标签: scala

这很好用:

def list: List[Int] = List(1, 2, 3)

但这不是:

def list: List[Int, Int] = List((1, 1), (1, 2))
  

错误:: 28:错误:List的类型参数数量错误,应为1

有什么问题?

3 个答案:

答案 0 :(得分:6)

签名应该是:

def list: List[(Int,Int)]

这意味着:两个Int元组

答案 1 :(得分:4)

最初的问题是

  

为什么List [Int,Int]不是有效的Scala类型?

答案是List构造函数使用单个类型参数进行参数化,因此在您的情况下为了使其工作,您需要通过在它们周围添加括号来将2个参数转换为单个参数Tuple

def list: List[(Int, Int)] = List((1, 1), (1, 2))

答案 2 :(得分:1)

您在List [括号中]之后定义的参数/类型定义了列表应包含的数据类型。

第一个定义List[Int]表示如果你想要一个可以使用的Int对列表,你需要一个整数列表

List[(Int,Int)]

List[Tuple2[Int,Int]]