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

Scala – null(?)作为命名Int参数的默认值

发布时间:2020-12-16 19:11:32 所属栏目:安全 来源:网络整理
导读:我想在 Scala中做一些我会用 Java做的事情: public void recv(String from) { recv(from,null);}public void recv(String from,Integer key) { /* if key defined do some preliminary work */ /* do real work */}// case 1recv("/x/y/z");// case 2recv("
我想在 Scala中做一些我会用 Java做的事情:

public void recv(String from) {
    recv(from,null);
}
public void recv(String from,Integer key) {
    /* if key defined do some preliminary work */
    /* do real work */
}

// case 1
recv("/x/y/z");
// case 2
recv("/x/y/z",1);

在Scala我能做到:

def recv(from: String,key: Int = null.asInstanceOf[Int]) {
    /* ... */
}

但它看起来很难看.或者我可以这样做:

def recv(from: String,key: Option[Int] = None) {
    /* ... */
}

但现在用钥匙看起来很难看:

// case 2
recv("/x/y/z",Some(1));

什么是正确的Scala方式?谢谢.

解决方法

选项方式是Scala方式.您可以通过提供帮助方法使用户代码更好一些.

private def recv(from: String,key: Option[Int]) {
  /* ... */
}

def recv(from: String,key: Int) {
  recv(from,Some(key))
}

def recv(from: String) {
  recv(from,None)
}

null.asInstanceOf [Int]顺便计算为0.

(编辑:李大同)

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

    推荐文章
      热点阅读