我试图生成一个函数,它返回一个List,其中包含Scala中的布尔值列表。到目前为止,功能如下:Scala:类型单元的表达式不符合类型List [List [Boolean]]
def listListBool(n: Int): List[List[Boolean]] = {
val empty: List[List[Boolean]] = null
if (n == 0) {empty}
else if (n ==1) {val bools = List(List(true, false))
}
的“否则,如果”声明标志了错误的部分:“类型单位的表达不符合类型列表[列表[布尔]”即使我已经指定该程序需要返回布尔列表列表。我也尝试过以下语法:
else if (n == 1) {val bools: List[List[Boolean]] = List(List(true, false)
但仍然产生相同的错误。我在这里错过了非常明显的东西吗?我觉得好几个小时一直在盯着这个,我仍然无法完全理解我的错误。
请记住,我是Scala的新手,我不完全熟悉该语言的所有细节和语法。
编辑:我回复了一些意见,说明'其他'是因为解决这个问题后被添加。看看你的意见,我尝试添加一个,这是固定的。我仍然不太明白,这是如何将返回类型从“任何”更改为正确的类型,但它的工作原理是什么。
'else if'后面还有一个'else',但我想在继续前进之前修正错误。已经接受了您的建议,以返回空列表。更有意义!我不确定为什么我以前没有使用它。感谢您的建议! – LittleAngryProgrammer
@haffla,他没有返回null。他正在返回值为null的有效类型。 –
我看,这只是不是很好斯卡拉风格 – haffla