Я пытаюсь создать функцию, которая возвращает список, содержащий списки булевых в Scala. До сих пор функция выглядит следующим образом:Scala: выражение типа Unit не соответствует типу 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))
}
«иначе если» часть флагов заявление с ошибкой: «Выражение типа блока не соответствует типа List [Список [Boolean]]» хотя я указал, что программе необходимо вернуть список списков логических элементов. Я также пробовал следующий синтаксис:
else if (n == 1) {val bools: List[List[Boolean]] = List(List(true, false)
Но эта же ошибка все еще производится. Я пропустил что-то действительно очевидное здесь? Я чувствую, что часами смотрю на это, и я все еще не могу понять, что я ошибаюсь.
Пожалуйста, имейте в виду, что я совершенно новый для Scala, и я не совсем знаком со всеми языками и синтаксисом.
EDIT: Я ответил на некоторые комментарии по этому поводу, в которых говорится, что после исправления этой проблемы необходимо добавить «еще». Просматривая ваши комментарии, я попробовал добавить один так или иначе, и это было исправлено. Я до сих пор не совсем понимаю, как это изменит тип возврата от «Any» до нужного типа, но тем не менее работает.
«else» следует за «else if», но я хотел, чтобы ошибка была исправлена, прежде чем двигаться вперед. Приняли ваш совет по возврату пустых списков. Имеет гораздо больше смысла! Я не знаю, почему я раньше не использовал его. Спасибо за совет! – LittleAngryProgrammer
@haffla, Он не возвращает null. Он возвращает допустимый тип, который имеет значение null. –
Я вижу, это просто не очень хорошо Стиль Скалы – haffla