Scalaz.NonEmptyList vs Scala.List?

时间:2016-03-10 06:36:28

标签: scalaz scalaz7

有人可以解释为什么我应该使用Scalaz的owl.carousel.js而不是Scala的if (index % base.options.paginationItems === 0 || index === lastItem) {

在不可变的应用程序中,创建一个空的NonEmptyList

没有多大意义
  1. 那么我应该总是在不可变的应用程序中使用List吗?
  2. 为什么我会使用scalaz的List而不是scala的NonEmptyList,除了明显的原因是它保证列表中至少有一个元素?

1 个答案:

答案 0 :(得分:3)

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

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