这很好用:
def list: List[Int] = List(1, 2, 3)
但这不是:
def list: List[Int, Int] = List((1, 1), (1, 2))
错误:: 28:错误:List的类型参数数量错误,应为1
有什么问题?
答案 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]]