gpt4 book ai didi

arrays - Scala 数组属于哪个类别?

转载 作者:行者123 更新时间:2023-12-04 23:05:47 24 4
gpt4 key购买 nike

我正在对 Scala 中的数组进行分析。我正在按照一本书(Robert W. Sebesta 的《编程语言概念》)进行此分析。根据这本书,有五类数组,基于绑定(bind)到下标范围、绑定(bind)到存储以及从哪里分配存储。类别是:

  • 静态数组 : 是一种下标范围是静态绑定(bind)的并且存储分配是静态的(在运行时之前完成)。静态数组的优点是效率:不需要动态分配或释放。缺点是数组的存储在程序的整个执行时间内是固定的。
  • 固定堆栈动态数组 : 是一种下标范围是静态绑定(bind)的,但分配是在执行期间的声明细化时完成的。固定堆栈动态数组相对于静态数组的优势在于空间效率。一个子程序中的大数组可以使用与不同子程序中的大数组相同的空间,只要两个子程序不同时处于事件状态。如果这两个阵列在不同的 block 中同时不活动,情况也是如此。缺点是需要分配和释放时间。
  • 堆栈动态数组 : 是其中下标范围和存储分配在细化时动态绑定(bind)的一种。但是,一旦绑定(bind)了下标范围并分配了存储空间,它们在变量的生命周期内保持不变。堆栈动态数组相对于静态和固定堆栈动态数组的优势在于灵 active 。在数组即将被使用之前,不需要知道数组的大小。
  • 固定堆动态数组 : 类似于固定堆栈动态数组,因为在分配存储后,下标范围和存储绑定(bind)都是固定的。不同之处在于下标范围和存储绑定(bind)都是在用户程序在执行期间请求它们时完成的,并且存储是从堆而不是堆栈分配的。固定堆动态数组的优点是灵 active ——数组的大小总是适合问题。缺点是堆的分配时间,比栈的分配时间长。
  • 堆动态数组 : 是一种下标范围和存储分配的绑定(bind)是动态的,并且可以在数组的生命周期内更改任意次数。堆动态数组相对于其他数组的优势在于灵 active :数组可以在程序执行期间随着空间需求的变化而增长和缩小。缺点是分配和释放时间较长,在程序执行过程中可能会发生多次。以下段落给出了这五个类别的示例。

  • Scala 语言使用了哪些类型的矩阵?

    最佳答案

    Scala 和 Java 都使用 fixed heap-dynamic array在原始数组上。有类,比如Java的Vector和 Scala 的 ArrayBuffer , 它建立在提供 heap-dynamic array 特征的原语之上.

    关于arrays - Scala 数组属于哪个类别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12645471/

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