gpt4 book ai didi

scala:在具有可选返回类型的树上查找方法

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

我正在树状结构上编写查找方法。这是我的代码:

def find[T](node: Node, findThisGuy: T): Option[Node] = {
if (node.data == findThisGuy) {
Some(node)
} else {
if (node.children.nonEmpty) {
node.children.foreach(child => {
find(child, findThisGuy)
})
} else {
None
}
}
}

这里的问题是内部 if 具有 Unit 的返回类型,它确实符合函数的返回类型,即 Option[Node]。那么如何定义内部if的返回类型呢?我愿意就更好地实现上述方法提出建议。

最佳答案

我认为这会成功:

def find[T](node: Node, findThisGuy: T): Option[Node] = {
if (node.data == findThisGuy) {
Some(node)
} else {
node.children.view
.map(child => find(child, findThisGuy))
.collectFirst{case Some(guy) => guy}
}
}

关于scala:在具有可选返回类型的树上查找方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31864077/

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