Long 的标量范围

2023-11-22

我是 Scala 语言的新手。

我需要长类型的范围。

我需要第 1 步中的 [1, 2, 3 ... 10000000] 列表。如果我使用 Until/to ,则会因为使用 Long 而不是 Int 而收到错误。

我尝试编写一个简单的函数,它需要一个开始、一个结束和一个空列表,并生成一个 [start .. end] 列表。

这是我的功能:

def range_l(start : Long, end : Long, list : List[Long]) : List[Long] = {
    if (start == end){
        val add_to_list = start :: list
        return add_to_list
    }
    else {
        val add_to_list = start :: list
        range_l(start + 1, end, add_to_list)
    }
}

如果我这样称呼它:range_l(1L, 1000000L, List()) i get OutOfMemory以下行中的错误:add_to_list = start :: list

你能给我什么建议?我怎样才能得到Range[Long]或者我该如何优化该功能。如何避免内存不足?

谢谢。


您可以使用以下语法创建这样的范围:

val range = 1L to 10000000L

“L”是必需的,用于通知编译器这些文字是长整型而不是整型。

然后你就可以使用几乎所有List实例上的方法range。它不应该填满您的内存,因为中间值是在需要时生成的。该范围可以传递给任何期望的方法Traversable[Long], a Seq[Long], an Iterable[Long], etc.

但是,如果您确实需要一个List只要打电话range.toList(并增加堆大小以容纳所有列表元素)...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Long 的标量范围 的相关文章

  • 查找列表中元素的索引

    我需要获取方案列表中元素的索引 例如 2 2 3 4 5 4 2 3 4 5 2 有人可以帮忙吗 像这样的东西 define list index lambda e lst if null lst 1 if eq car lst e 0 i
  • Python 类型错误:“List”对象不可调用

    我在使用 Python27 的这段小代码内容时遇到此错误 谁能帮我这个 提前致谢 运行时错误回溯 最近一次调用最后一次 文件 5eb4481881d51d6ece1c375c80f5e509 py 第 57 行 在 print len ar
  • List.Enumerator IEnumerator.Reset() 方法实现

    尽管事实如此 IEnumerator Reset永远不应该使用方法 https stackoverflow com a 5968973 1163867我发现方法实现的奇怪行为List
  • 验证是否存在唯一字符串的组合

    class Details String name String age String email String location 1 如果有详细信息列表 如下所示List
  • 作为单例集合的选项 - 现实生活中的用例

    标题几乎概括了这一点 Option作为单例集合有时会令人困惑 但有时它允许一个有趣的应用程序 我脑子里有一个例子 并且想了解更多这样的例子 我唯一的例子是运行for对的理解Option List T 我们可以执行以下操作 val v Som
  • 错误:使用替代方法写入重载方法值:

    我正在尝试读取固定宽度的文件并将其写入文本文件 下面是代码 输入文件布局字段的长度 4 10 3 5 3 1 1 5 7 094482018 07 10 022 14012 000 0 30000A 002290 059412018 07
  • 如何在 Lift 中反序列化 DateTime

    我在将 org joda time DateTime 字段从 JSON 反序列化到案例类时遇到问题 JSON val ajson parse creationDate 2013 01 02T10 48 41 000 05 00 我还设置了这
  • Python 在列表列表中查找值

    最近我必须找到某个列表中的某些内容 我使用了 def findPoint haystack needle haystack 1 2 3 4 5 6 7 8 9 for x in range len haystack if needle in
  • 在 C++ 中处理 Apache Thrift list/map 返回类型

    首先 我会说我不是最有能力的 C 程序员 但我正在学习并享受 Thrift 的强大功能 我已经实现了一个 Thrift 服务 其中包含一些返回 void i32 和列表的基本函数 我正在使用由 Django Web 应用程序控制的 Pyth
  • 方法返回类型的类型推断

    当存在显式方法时 为什么 Scala 无法推断方法的返回类型return方法中使用的语句 例如 为什么下面的代码可以编译 object Main def who 5 def main args Array String println wh
  • 在 URL 中嵌入 ETag

    有关 Play 中资产指纹识别的问题 如何要求 Play 在 URL 中嵌入 ETag 而不使用第三方插件 例如 如果 css resource cssETag 为1234 那么它就会变成 css responsive 1234 css 相
  • 尝试在 python 中创建字典列表时出现意外列表[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个字典列表 预期输出是 对于 5 个学生 列表中应该有 5 个字典项目 键为 Name 和 Marks 在列表中 我得到的输出是迭代中最后一个学生的信息重 复 5 次 请让我知道我在哪里犯了错误
  • 抽象类型与类型参数

    在什么情况下抽象类型应该优先于类型参数 添加到我的之前关于抽象类型与参数的回答 https stackoverflow com questions 1154571 scala abstract types vs generics 11547
  • jQuery .append() 产生乱序的 html 元素。为什么?

    我的 html 包含这个 div div 当我在 javascript 中这样做时 container append div container append p container append test content containe
  • 我需要比较两个数据帧以进行类型验证并发送非零值作为输出

    我正在比较两个数据帧 基本上 这些是两个不同数据源的模式 一个来自 hive 另一个来自 SAS9 2 我需要验证两个数据源的结构 因此我将模式转换为两个数据帧 它们是 SAS 架构将采用以下格式 scala gt metadata sho
  • 特征/类类型参数优先于方法类型参数的规则是什么

    我已经使用 scala 一段时间了 我认为我真的开始理解一切 好吧 大多数事情 但我发现自己对 Map 类中的许多方法定义感到困惑 我知道 FoldLeft 等如何工作 但我感到困惑的是 Map 函数中使用的类型参数 我们以 FoldLef
  • 在多个线程中添加和删除时 List 中的 null 值

    我知道 C System Collections Generic List 对象不是线程安全的 但我想知道为什么这段代码会生成空值 Task Run gt for var i 0 i lt 10 i var str Test i list
  • 在 Akka Actor 中使用 Future

    我刚刚开始学习 Scala 中的 Akka Actors 我的理解是 Actor 收到的消息会在 Actor 的邮箱中排队 并一次处理一个 通过一次处理一条消息 可以缓解并发问题 竞争条件 死锁 但是 如果 Actor 创建一个 futur
  • PyCharm 无法识别字典值类型

    我有一个简单的代码片段 其中我将字典值设置为空列表 new dict for i in range 1 13 new dict i 现在 如果在下一行的循环内我会输入new dict i 并添加一个点 我希望 PyCharm 向我显示可用于
  • 使用 Scala 在 Apache Spark 中拆分字符串

    我有一个数据集 其中包含以下格式的行 制表符分隔 Title lt t gt Text 现在对于每个单词Text 我想创建一个 Word Title 一对 例如 ABC Hello World gives me Hello ABC Worl

随机推荐