推断 NonEmptyList(String, List[Nothing]) 的类型?
Inferring Type of NonEmptyList(String, List[Nothing])?
使用 scalaz.NonEmptyList 进行试验,我试过:
scala> import scalaz.NonEmptyList
import scalaz.NonEmptyList
scala> NonEmptyList("5", Nil)
res0: scalaz.NonEmptyList[java.io.Serializable] = NonEmptyList(5, List())
我误以为List
是NonEmptyList#apply
的第二个参数(实际上是varargs)。
但是,为什么 java.io.Serializable
显示为类型?
您已经构建了一个包含两个项目的列表,一个 String
和一个 Nil
。所以该列表的类型是 NonEmptyList[A]
,其中 A
是 String
和 Nil
的最低公共超类型,即类型 Serializable
。顺便说一句:scala 的普通列表也会发生同样的事情:List("5",Nil)
使用 scalaz.NonEmptyList 进行试验,我试过:
scala> import scalaz.NonEmptyList
import scalaz.NonEmptyList
scala> NonEmptyList("5", Nil)
res0: scalaz.NonEmptyList[java.io.Serializable] = NonEmptyList(5, List())
我误以为List
是NonEmptyList#apply
的第二个参数(实际上是varargs)。
但是,为什么 java.io.Serializable
显示为类型?
您已经构建了一个包含两个项目的列表,一个 String
和一个 Nil
。所以该列表的类型是 NonEmptyList[A]
,其中 A
是 String
和 Nil
的最低公共超类型,即类型 Serializable
。顺便说一句:scala 的普通列表也会发生同样的事情:List("5",Nil)