加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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` ...
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读