gpt4 book ai didi

Scala列表匹配最后一个元素

转载 作者:行者123 更新时间:2023-12-05 00:24:05 26 4
gpt4 key购买 nike

我目前正在学习 Scala,我很惊讶。该语言处理如此多的问题非常优雅。但是,在匹配列表的最后一个元素时遇到了问题。
让我们来看看这段代码:

def stringify(list: List[String]): String = list match {
case x :: xs => x + (if (xs.length != 0) ":" else "") + stringify(xs)
case Nil => ""
}
这很不雅观,我想写得更直观,像这样:
def stringify(list: List[String]): String = list match {
case x :: xs => x + ":" + stringify(xs)
case x :: Nil => x
}
我怎样才能做到这一点?

最佳答案

您需要切换顺序。 xs符号将热切匹配该位置的任何内容。尝试匹配 Nil first 将使该声明不再无法访问。此外,您仍然需要匹配 Nil本身来解释空列表。

def stringify(list: List[String]): String = list match {
case x :: Nil => x
case x :: xs => x + ":" + stringify(xs)
case Nil => ""
}

虽然 mkString已经做了你想做的事。

关于Scala列表匹配最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27095741/

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