Nil:将[Int]列为参数

时间:2017-03-15 09:24:15

标签: scala list

我有以下特质定义:

at [object Object].<anonymous> (D:\Program Files\Appium\node_modules\appium\lib\devices\android\android-common.js:344:9)
at FSReqWrap.oncomplete (fs.js:95:15)

和一个功能:

sealed trait List[+A]

// `List` data type, parameterized on a type, `A`
case object Nil extends List[Nothing]

// A `List` data constructor representing the empty list
/* Another data constructor, representing nonempty lists. Note that `tail` is another `List[A]`,
which may be `Nil` or another `Cons`.
 */
case class Cons[+A](head: A, tail: List[A]) extends List[A]

我的问题是, def add1(l: List[Int]): List[Int] = foldRight(l, Nil:List[Int])((h,t) => Cons(h+1,t)) 是什么意思?这是否意味着,我传递的Nil:List[Int]列表的类型带有Nil符号?

1 个答案:

答案 0 :(得分:3)

由于 $ python -c "import ssl; print ssl.OPENSSL_VERSION" (及其变体)是根据第一个参数列表确定类型参数,因此您不能简单地传递$('body').on('keydown','#ciao1',function(e){... ,因为类型将派生为fold(您还会看到第二个参数列表不匹配)。您可以使用类型归档来告知Nil类型为List[Nothing]。您还可以将Nil作为类型参数传递:

List[Int]

作为参考,List[Int]签名是这样的:

foldRight[List[Int]](l, Nil)((h,t) => Cons(h+1,t))