我阅读了有关如何在scala中编写for循环的教程,但它似乎没有用。
object Main {
def pascalTriangle(rows:Int):List[Int]= {
var previousRow:List[Int] = Nil
var row:List[Int] = Nil
for(i <- 1 to rows) {
for( j <- 1 to i+1){
if (j == 1 || j == i)
row :+ 1
else
row :+ previousRow(j) + previousRow(j - 1)
}
previousRow = row
println (row)
row = Nil
}
}
def main(args: Array[String]) {
pascalTriangle(6)
}
}
我在for循环的条件下一直遇到类型不匹配错误。
答案 0 :(得分:1)
您的方法pascalTriangle被声明为返回List [int]。
但是,方法体中的最后一个表达式是外部for循环。这是表达式将返回值的表达式。
for-loops(不使用yield关键字)求值为():Unit,与预期的返回类型存在类型不匹配(没有yield的for循环仅用于副作用)。
如果你想,例如,返回行,你需要在外部for循环之后简单地在方法的末尾写'row'。