gpt4 book ai didi

scala - 如何设计一个接受所有域但依赖于某些状态的部分函数?

转载 作者:行者123 更新时间:2023-12-01 21:44:03 25 4
gpt4 key购买 nike

一个与函数式编程相关的问题。

“一行代码胜千字”,所以:

class Entry {
var entryOrderId: Option[Int]
def closeEntry(closeOrder: Order) = {
require(entryOrderId.isDefined)
...
}
}

问题:为了关闭条目,必须定义entryOrderId。我不想抛出异常(使用“require”函数),并且我不想返回 Try(成功/失败)对象,因为调用者不期望任何返回值。你会如何设计这个功能?

(注意:我标记了 Scala,但这里的语言不是问题......)

最佳答案

根据您的要求,如果调用者确实不关心结果,那么您可以在 entryOrderId 上使用 foreach 。因此,只有定义了 entryOrderId 时才会调用内部 block 。

class Entry {
var entryOrderId: Option[Int]
def closeEntry(closeOrder: Order) = entryOrderId foreach { id =>
// do something with the `id` ...
}
}

关于scala - 如何设计一个接受所有域但依赖于某些状态的部分函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27570388/

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