0

有人可以解释为什么我应该使用 Scalaz 的NonEmptyList而不是 Scala 的List吗?

在不可变的应用程序中,创建一个空的没有多大意义List

  1. 那么我应该总是NonEmptyList在不可变的应用程序中使用吗?
  2. 除了保证列表中至少有一个元素的明显原因之外,我为什么还要使用 scalazNonEmptyList而不是 scala ?List
4

1 回答 1

4

Scala 的集合有许多不安全的方法。这些包括head,last等。不安全意味着如果集合为空,它们将抛出异常。现在你可以说“我非常确定这个集合在运行时不会为空,所以我的代码是安全的”。但是,有人出现,更改您的代码等。

因此,从本质上讲,scalaz 类型为您提供了静态安全性,因为如果您静态地知道集合不会为空,那么调用 head 等是安全的。

于 2016-03-11T13:53:05.200 回答