为什么在Scala中创建List时我们需要Nil?

投降王

我在清单上有一个基本问题

尝试使用cons运算符创建列表时出现以下错误

scala> val someList = 1::2
<console>:10: error: value :: is not a member of Int
   val someList = 1::2
                   ^

但是,如果您看下面的内容,那么一旦我最后添加Nil,它就会起作用。

    scala> val someList = 1::2::Nil
    someList: List[Int] = List(1, 2)

我想知道为什么为什么在创建列表时至少需要一次Nil

Nil是dataType吗?或空元素?

四人

正是因为这个原因。

value ::不是Int的成员

在Scala中,运算符实际上是对象上的函数。在这种情况下,::Nil对象上的函数实际上是一个空列表对象

scala> Nil
res0: scala.collection.immutable.Nil.type = List()

当您这样做时1::2,Scala会查找名为::on的函数2,但找不到该函数这就是为什么它失败并显示该错误的原因。


注意:在Scala中,如果运算符的最后一个字符不是冒号,则会在第一个操作数上调用该运算符。例如,1 + 2基本上是1.+(2)但是,如果最后一个字符是冒号,则在右侧操作数上调用运算符。因此,在这种情况下,1 :: Nil实际上是Nil.::(1)由于::返回了另一个列表对象,因此可以将其链接起来,就像1 :: 2 :: Nil实际上是一样Nil.::(2).::(1)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我们需要以“ Nil”结尾的列表

来自分类Dev

为什么我们需要创建CFC的实例?

来自分类Dev

为什么我们需要创建CFC的实例?

来自分类Dev

为什么我们需要Scala的CanBuildFrom中的From类型参数

来自分类Dev

为什么我们需要Clojure中的'in(require'[...]])?

来自分类Dev

为什么我们需要MapReduce中的“地图”部分?

来自分类Dev

为什么我们在MongoDB中需要created_at

来自分类Dev

为什么我们需要Python中的属性?

来自分类Dev

为什么我们需要Java中的Properties类?

来自分类Dev

为什么我们需要纯<?>在Java中?

来自分类Dev

为什么我们在Typescript中需要任何类型?

来自分类Dev

为什么我们需要Kubernetes中的服务帐户?

来自分类Dev

我们为什么需要容器?

来自分类Dev

为什么我们需要IO?

来自分类Dev

Scala集合:为什么我们需要一个case语句来提取高阶函数中的值元组?

来自分类Dev

FFmpeg:为什么我们需要在转换过程中创建临时文件

来自分类Dev

当我们有一个红色区域时,为什么我们需要堆栈分配?

来自分类Dev

当我们有一个红色区域时,为什么我们需要堆栈分配?

来自分类Dev

为什么在预处理图像数据时,我们需要做零中心数据?

来自分类Dev

为什么我们在编码时需要避免突变?什么是突变?

来自分类Dev

为什么我们需要Scala的ParHashMap,而Java却有ConcurrentHashMap

来自分类Dev

为什么我们在http响应消息中既需要状态代码又需要短语代码?

来自分类Dev

为什么我们在http响应消息中既需要状态代码又需要短语代码?

来自分类Dev

为什么我们需要为守护程序创建一个新会话?

来自分类Dev

为什么我们需要创建新的Icollection类型属性实例

来自分类Dev

为什么我们需要分叉来创建新流程?

来自分类Dev

为什么我们需要ClientConfig创建客户端(使用球衣)

来自分类Dev

为什么我们需要创建新的Icollection类型属性实例

来自分类Dev

为什么我们需要为 openstack 创建 localrc 文件

Related 相关文章

  1. 1

    为什么我们需要以“ Nil”结尾的列表

  2. 2

    为什么我们需要创建CFC的实例?

  3. 3

    为什么我们需要创建CFC的实例?

  4. 4

    为什么我们需要Scala的CanBuildFrom中的From类型参数

  5. 5

    为什么我们需要Clojure中的'in(require'[...]])?

  6. 6

    为什么我们需要MapReduce中的“地图”部分?

  7. 7

    为什么我们在MongoDB中需要created_at

  8. 8

    为什么我们需要Python中的属性?

  9. 9

    为什么我们需要Java中的Properties类?

  10. 10

    为什么我们需要纯<?>在Java中?

  11. 11

    为什么我们在Typescript中需要任何类型?

  12. 12

    为什么我们需要Kubernetes中的服务帐户?

  13. 13

    我们为什么需要容器?

  14. 14

    为什么我们需要IO?

  15. 15

    Scala集合:为什么我们需要一个case语句来提取高阶函数中的值元组?

  16. 16

    FFmpeg:为什么我们需要在转换过程中创建临时文件

  17. 17

    当我们有一个红色区域时,为什么我们需要堆栈分配?

  18. 18

    当我们有一个红色区域时,为什么我们需要堆栈分配?

  19. 19

    为什么在预处理图像数据时,我们需要做零中心数据?

  20. 20

    为什么我们在编码时需要避免突变?什么是突变?

  21. 21

    为什么我们需要Scala的ParHashMap,而Java却有ConcurrentHashMap

  22. 22

    为什么我们在http响应消息中既需要状态代码又需要短语代码?

  23. 23

    为什么我们在http响应消息中既需要状态代码又需要短语代码?

  24. 24

    为什么我们需要为守护程序创建一个新会话?

  25. 25

    为什么我们需要创建新的Icollection类型属性实例

  26. 26

    为什么我们需要分叉来创建新流程?

  27. 27

    为什么我们需要ClientConfig创建客户端(使用球衣)

  28. 28

    为什么我们需要创建新的Icollection类型属性实例

  29. 29

    为什么我们需要为 openstack 创建 localrc 文件

热门标签

归档