Scala 推断非空列表的类型(字符串,列表[Nothing])?
在试验中,我尝试:Scala 推断非空列表的类型(字符串,列表[Nothing])?,scala,scalaz,Scala,Scalaz,在试验中,我尝试: scala> import scalaz.NonEmptyList import scalaz.NonEmptyList scala> NonEmptyList("5", Nil) res0: scalaz.NonEmptyList[java.io.Serializable] = NonEmptyList(5, List()) 我错误地认为List是NonEmptyList#apply的第二个参数(实际上是) 但是,为什么java.io.Serializabl
scala> import scalaz.NonEmptyList
import scalaz.NonEmptyList
scala> NonEmptyList("5", Nil)
res0: scalaz.NonEmptyList[java.io.Serializable] = NonEmptyList(5, List())
我错误地认为List
是NonEmptyList#apply
的第二个参数(实际上是)
但是,为什么
java.io.Serializable
显示为类型?您已经构建了一个包含两项的列表,一个字符串和一个Nil
。因此,该列表的类型是NonEmptyList[A]
,其中A
是String
和Nil
的最低公共超类型,这两种超类型都是可序列化的类型。顺便说一句:scala的普通列表也会发生同样的情况:List(“5”,Nil)