假设我有以下代码:
val xs: List[Int] = List(1, 2, 3)
val ys: List[Int] = List(4, 5, 6)
val zs: List[Int] = xs.appended(ys)
最后一行不会编译并显示错误:
错误:(162,33)类型不匹配;找到:List [Int]必需:Int val zs:List [Int] = xs.appended(ys)
如果删除显式类型声明,则代码将编译,但真正的问题是错误消息出现在递归函数中,在该函数中我想将附加列表作为type的参数传递List[Int]
,因此删除显式类型不是一种选择。
根据scaladoc appended
方法,仅采用一个参数,而不是整个列表。因此,将编译以下示例:
xs.appended(ys(0))
for(x <- xs) yield ys appended x
或appendAll
:
xs appendAll ys
ys :++ xs
PS:请注意,追加到列表并不是最佳选择,因为它的时间与列表的大小成正比,因此建议使用prepend代替:
ys ::: xs
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句