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

Scala空默认关闭?

发布时间:2020-12-16 19:04:08 所属栏目:安全 来源:网络整理
导读:只是一个快速的问题,我似乎无法找到答案. 我在Scala中有一个方法定义,如下所示: def execute(goals: List[String],profiles: List[String] = List(),loggingCallback: (String) = Unit = { _ = }): Result = { // method body loggingCallback("a message")
只是一个快速的问题,我似乎无法找到答案.

我在Scala中有一个方法定义,如下所示:

def execute(goals: List[String],profiles: List[String] = List(),loggingCallback: (String) => Unit = { _ => }): Result = {
    // method body
    loggingCallback("a message")
}

我想知道是否有更好的方法来指定默认的空闭包.问题不在于如何实现日志记录,这只是一个例子.

解决方法

你的解决方案很好您可以为Function1 [X,Unit]引入类型别名;根据Kevin的答案使用(),并删除不必要的括号.

scala> type Effect[-A] = (A => Unit)
defined type alias Effect

scala> def foo(f: Effect[String] = _ => ()) = ()
foo: (f: (String) => Unit)Unit

您还可以定义noop函数:

scala> val noop = (a: Any) => ()
noop: (Any) => Unit = <function1>

scala> def foo(f: Effect[String] = noop) = ()

(编辑:李大同)

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

    推荐文章
      热点阅读