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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |