gpt4 book ai didi

list - 在 Scala : What do I actually get? 中创建列表和集合

转载 作者:行者123 更新时间:2023-12-04 00:04:55 27 4
gpt4 key购买 nike

如果我创建一个 Set在 Scala 中使用 Set(1, 2, 3)我得到一个 immutable.Set .

scala> val s = Set(1, 2, 3)
s: scala.collection.immutable.Set[Int] = Set(1, 2, 3)

Q1:这究竟是怎样的一套?它是一些哈希集吗?例如,查找的复杂性是什么?

Q2:我在哪里可以阅读这种“设置创建”方法?我还以为是 apply方法,但文档说“此方法允许将集合解释为谓词。它返回 true,如果此集合包含元素 elem。”

同样,如果我创建一个 List使用 List(1, 2, 3) ,我得到
scala> val l = List(1, 2, 3)
l: List[Int] = List(1, 2, 3)

scala> l.getClass
res13: java.lang.Class[_] = class scala.$colon$colon

Q3:再说一遍,我能得到什么?在这种情况下,我什至无法立即判断它是否可变,因为它甚至不是 scala.collection 的一部分。 - 包。为什么这个活在 scala包?

Q4:我可以在 API 中的何处阅读有关此“列表创建”方法的信息?

最佳答案

问题 1:在这种特定情况下,您会收到 Set3这是一组不可变的正好三个参数。大概它使用 if-else if-else 来检查包含。如果你创建了一个超过 4 个元素的集合,你会得到一个不可变的哈希集。

Q2:您需要查看 apply对象 Set 的方法,而不是类。 apply Set 类的方法是您执行时调用的方法 someSet(something) .

Q3:scala.::是一个非空的不可变单向链表(如果你做 List() 不带参数,你会得到 Nil 这是一个不可变的空列表)。它住在 scala包,因为它被认为是非常基本的,所以它属于基础包。

问题 4:参见问题 2。

关于list - 在 Scala : What do I actually get? 中创建列表和集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3149524/

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