gpt4 book ai didi

scala - 在 Scala 中为列表应用方法

转载 作者:行者123 更新时间:2023-12-02 20:29:21 25 4
gpt4 key购买 nike

我知道 Scala List 可以创建为:

val l = List(1,2,3)

执行上述语句时,幕后发生了什么?这里调用的是apply方法吗?

根据 scala 文档:对于序列,应用是位置索引 http://docs.scala-lang.org/overviews/collections/seqs.html

那么,是否有 2 种应用方法,一种用于位置索引,另一种作为对象创建的工厂方法?

最佳答案

这个调用实际上调用了 apply companion 对象上的方法到 List 类。

许多 Scala 类都有一个伴生对象,它是一个与类同名的单例对象。在这个伴随对象上定义方法,是 java 静态方法的 scala 等价物。这些伴生对象通常有一个或多个 apply 方法,这些方法用作构造函数/工厂函数来创建类的实例。在这种情况下,List 对象有一个方法,该方法采用可变数量的相同类型的参数,并创建这些对象的 List

事实上,如果您定义一个case class,scala 会自动定义一个伴生对象,除其他外,它包括并应用采用与 case 类的构造函数相同参数的方法,即为什么在构造案例类时不需要使用 new

列表 instance 也有一个 apply 方法,用于索引到列表中,但由于它是在 List class 上定义的,它只适用于实例类,而不是对象 List 本身。

关于scala - 在 Scala 中为列表应用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49206009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com