gpt4 book ai didi

scala - 当匹配的模式为 Nil 并且我们想要返回 Nil 时,合适的返回值是什么?

转载 作者:行者123 更新时间:2023-12-04 11:23:17 24 4
gpt4 key购买 nike

我是 Scala 和一般函数式编程的新手。所以这是我的疑问。

在具有模式匹配的函数中,当 case Nil匹配,我们要返回 Nil , 我们应该返回 Nil还是数据类型本身?例如,

def drop[A](l: List[A], n: Int): List[A] = {
if (n <= 0) l
else l match {
case Nil => Nil
case Cons(_, t) => drop(t, n - 1)
}
}

这是一个删除第一个 n 的函数来自单向链表的头元素。在这里,对于第一种情况,我应该返回 Nil (也许是一个好习惯)或者我应该返回 l (因为这样我们就不必构造 Nil 对象)?

最佳答案

Nil 只有一个单例实例目的。当你写 Nil你不会每次都创建一个新的,你只是使用唯一存在的。

通常最好写成 Nil因为它更具可读性。至少这是我一直读和写的。

关于scala - 当匹配的模式为 Nil 并且我们想要返回 Nil 时,合适的返回值是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28705868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com