scala – 如何设计一个接受所有域的部分函数,??但依赖于某个状态
发布时间:2020-12-16 18:08:10 所属栏目:安全 来源:网络整理
导读:函数式编程相关问题. “一行代码胜过千言万语”,所以: class Entry { var entryOrderId: Option[Int] def closeEntry(cloSEOrder: Order) = { require(entryOrderId.isDefined) ... }} 问题:为了关闭一个条目,必须定义entryOrderId.我不想抛出异常(使用’r
函数式编程相关问题.
“一行代码胜过千言万语”,所以: class Entry { var entryOrderId: Option[Int] def closeEntry(cloSEOrder: Order) = { require(entryOrderId.isDefined) ... } } 问题:为了关闭一个条目,必须定义entryOrderId.我不想抛出异常(使用’require’函数)并且我不想返回Try(成功/失败)对象,因为调用者不期望任何返回值.你会如何设计这个功能? (N.b:我标记了Scala,但这里的语言不是……) 解决方法
根据您的要求,如果调用者真的不关心结果,那么您可以在entryOrderId上使用foreach.因此,只有在定义了entryOrderId时才会调用内部块.
class Entry { var entryOrderId: Option[Int] def closeEntry(cloSEOrder: Order) = entryOrderId foreach { id => // do something with the `id` ... } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |