list - 我应该使用空列表还是使其成为选项?

标签 list scala optional-parameters

通常我的方法有一个 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会,那么我建议不要将列表包装在选项中。

我会说将它包装在一个选项中表示 NoneList()会被区别对待。

我认为接受列表作为参数的方法表现为无操作是相当普遍的。

关于list - 我应该使用空列表还是使其成为选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29262131/

相关文章:

scala 中的 Java 类反射

为引用类型传递 null 时,Scala 2.7.x 类型不匹配错误

重写方法的 C# 可选参数

vba - 如何将 ActiveSheet、ActiveWorkbook 或 ThisWorkbook 设置为 VBA 中可选参数的默认值?

list - 来自haskell列表的连续对

list - 列表上的 Haskell Monadic 操作

python - 自定义 Python 列表排序

c# - 如何将数据从 DataSet 放入列表

scala - 将结构数组分解为 Spark 中的列

Powershell:使用参数集重载 C# 风格的函数?