奇思妙想 · 2024年 9月 22日 0

编程语言的数组操作

29 次浏览

数组初始化

初始化元素,一般用大括号括起来。如下只讨论不同编程语言直接初始化数组的方式,其他动态创建或者调用构造函数初始化不在此讨论范围。

  • C/ObjC/C++
    • 初始化:跟随声明一起,int arr[] = {1, 2, 3};
    • 不支持某些编程语言的切片范围赋值。
  • Python
    • 和C/C++的操作很像,除了声明不需要带类型,也支持切片,下标可以是负数。
    • 列表追加:append函数, 插入:insert函数,删除:delete
    • 需要删除,但还接着需要用:pop()函数或pop(<index>)函数
    • 按值删除:remove函数,但只会删除第一个满足条件的,可利用循环删除所有
    • 排序:sort函数,临时排序的列表:sorted函数
    • 反转:reverse函数
    • 长度:len(<list>)
  • Fortran
    初始化: arr = [1, 2, 3]
    切片赋值:arr(1:2) = 1 ! 设置第一个到第二个元素都是1
  • C#
    • 初始化:int[] arr = {1, 2, 3};
  • Kotlin
    • Kotlin初始化是比较特例的
      • var arr : IntArray = intArrayOf(10, 20, 30)
      • var arr : Array<int> = arrayOf(10, 20, 30)
  • VB
    • Dim arr(10) As Integer
      // 初始化数组语句
    • Dim arr
      arr = Array(1, 2, 3)
  • Pascal
    • 例如:var arr:array[0..2] of integer = (10, 20, 30);
  • 仓颉
    • 用方括号初始化Array数组:var arr = [1, 2, 3]

读写

  • C/ObjC/C++/C#/Kotlin/Java/Pascal/仓颉
    • arr[idx]
    • Kotlin 还提供set函数,例如: intArray.set(3, 100) 将数组intArray下标3的元素改成100.
    • Pascal 多维数组下标用逗号分隔:例如arr[2, 3]
  • VB 访问数组下标用括号
    • arr(idx)

数组大小

  • C/ObjC/C++ 不提供内置数组获取大小的函数,因为它们的语言设计期望简洁。
    • 注意ObjC 的NSArray属于框架,而非内置数组,有数组大小函数。
  • Kotlin 提供 size 属性,例如:intArray.size