我最近开始学习scala并且作为赋值的一部分,我需要编写一个具有以下要求的函数:它必须是递归的,并且在空列表的情况下抛出异常.试过这段代码,但总是抛出异常.
def max(xs: List[Int]): Int =
if (xs.isEmpty) {
throw new NoSuchElementException("empty list")
} else {
if (xs.head > max(xs.tail)) xs.head else max(xs.tail)
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:抱歉出错,当然需要用new创建例外.但是,该函数始终失败并出现异常.尝试过require(),但它返回一个Unit类型,因此编译器说它不能放在那里.有没有一种简单的方法可以在scala中递归函数抛出异常而不解析为Try,Option等?