我試圖生成一個函數,它返回一個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