我正在寻找一种测试任何类型的值是否为空(或默认值)的解决方案。 IE。 Any上的某种方法,用于测试String实例是否等于""Int(等于0),Float(等于0f),Boolean(等于false),List,ojit_code不包含任何项目,以此类推。 Primarilly我很想知道标准库中是否已经存在某种解决方案,如果没有,您将如何实现它。我认为这可能很有用,如果标准库中不存在它,则建议使用。

最佳答案

使用Scalaz中的 Zero 类型类。

scala> import scalaz._, Scalaz._
import scalaz._
import Scalaz._

scala> def isEmpty[A : Zero](value: A) = value == mzero[A]
isEmpty: [A](value: A)(implicit evidence$1: scalaz.Zero[A])Boolean

scala> isEmpty("")
res0: Boolean = true

scala> isEmpty(List())
res1: Boolean = true

scala> isEmpty(false)
res2: Boolean = true

scala> isEmpty("O HAI")
res3: Boolean = false

我的Link to a blog post相关主题。

关于scala - 测试所有类型的通用空值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8674142/

10-11 13:17