我应该使用空列表还是使其成为选项?
发布时间:2020-12-16 09:50:48 所属栏目:安全 来源:网络整理
导读:我的方法常常有一个可选的List参数.当我收到一个项目列表时,我会对它们执行某些操作,否则将忽略该参数.这是一个简单的例子. scala def convertToUpper(s: String,appenders: List[String] = List()) { (s.toUpperCase :: appenders).mkString(" ")}scala con
我的方法常常有一个可选的List参数.当我收到一个项目列表时,我会对它们执行某些操作,否则将忽略该参数.这是一个简单的例子.
scala> def convertToUpper(s: String,appenders: List[String] = List()) { (s.toUpperCase :: appenders).mkString(" ") } scala> convertToUpper("cory",List("asks","questions")) CORY asks questions 但有时我想知道这个合同是否传达了一个appenders参数的期望,当它真的是可选的时候.另一方面,使appender成为Option [List]会增加复杂性. 当参数是List并且我可以只测试空虚而不是None时,避免使用Option是不好的做法吗? 解决方法
如果一个空列表是一个有效的参数(在你的例子中)并且它的行为为None,那么我建议不要将该列表包装在一个选项中.
我会说将它包装在一个选项中表示None和List()将被区别对待. 我认为接受列表作为参数表示为无操作的方法相当普遍. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |