通常我的方法有一个 List
可选的参数。当我收到一个项目列表时,我会对它们做一些事情,否则该参数将被忽略。这是一个简单的例子。
scala> def convertToUpper(s: String, appenders: List[String] = List()) {
(s.toUpperCase :: appenders).mkString(" ")
}
scala> convertToUpper("cory", List("asks", "questions"))
CORY asks questions
但有时我想知道这份契约(Contract)是否传达了对
appenders
的期望。参数实际上是可选的。另一方面,制作appenders
Option[List]
增加了复杂性。避免使用
Option
是不好的做法吗?当参数为 List
时我可以只测试空性而不是 None
?
最佳答案
如果一个空列表是一个有效的参数(在你的例子中就是这样)并且它的行为为 None
会,那么我建议不要将列表包装在选项中。
我会说将它包装在一个选项中表示 None
和 List()
会被区别对待。
我认为接受列表作为参数的方法表现为无操作是相当普遍的。
关于list - 我应该使用空列表还是使其成为选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29262131/