Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 我应该使用空列表还是将其作为一个选项?_List_Scala_Optional Parameters - Fatal编程技术网

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()
将得到不同的处理

我认为接受列表作为参数的方法表现为不可操作是相当常见的