List 我应该使用空列表还是将其作为一个选项?
我的方法通常有一个可选的List 我应该使用空列表还是将其作为一个选项?,list,scala,optional-parameters,List,Scala,Optional Parameters,我的方法通常有一个可选的列表参数。当我收到一个项目列表时,我会对它们进行处理,否则该参数将被忽略。这里有一个简单的例子 scala> def convertToUpper(s: String, appenders: List[String] = List()) { (s.toUpperCase :: appenders).mkString(" ") } scala> convertToUpper("cory", List("asks", "questions")) CORY a
列表
参数。当我收到一个项目列表时,我会对它们进行处理,否则该参数将被忽略。这里有一个简单的例子
scala> def convertToUpper(s: String, appenders: List[String] = List()) {
(s.toUpperCase :: appenders).mkString(" ")
}
scala> convertToUpper("cory", List("asks", "questions"))
CORY asks questions
但有时我想知道,当这个契约实际上是可选的时,它是否传递了一个appenders
参数的期望。另一方面,将appenders
设置为选项[List]
会增加复杂性
当参数是一个
列表时,避免使用选项是一种不好的做法吗?我可以直接测试是否为空,而不是None
?如果一个空列表是一个有效的参数(在您的示例中是这样),并且它的行为与None
类似,那么我建议不要将列表包装在一个选项中
我想说,将其包装在选项中表示None
和List()
将得到不同的处理
我认为接受列表作为参数的方法表现为不可操作是相当常见的