delphi java array_从Delphi到Go——数组

静态数组

一维数组

声明

Delphi

var 数组名 : array[索引范围] of 元素类型; //索引范围是子界类型,格式为:下限..上限

Go

var 数组名 [数组长度]元素类型

Delphi的索引范围可以是任意的子界类型,而且是包含上下限的闭区间。子界可以是任意的序数类型(整型、字符型、枚举元素等),例如:0..8、5..11、'a'..'z'等。子界元素就是数组元素的下标。

Go的数组长度只能是整型,下标为0~数组长度-1。

初始化

Delphi

var 数组名 : array[1..N] of 元素类型 = (元素1, 元素2, ……, 元素N);

//如果先声明后赋值的话,赋值时就需要遍历数组对每个元素分别赋值

Go

var 数组名 [N]元素类型 = [N]元素类型{元素0, 元素1, ……, 元素N-1}

//由于初始化时元素个数已知,以上代码也可写为:

var 数组名 [N]元素类型 = [...]元素类型{元素0, 元素1, ……, 元素N-1}

//如果先声明后赋值的话,写法如下:

var 数组名 [N]元素类型

数组名 = [...]元素类型{元素0, 元素1, ……, 元素N-1}

//也可简写为:

数组名 := [...]元素类型{元素0, 元素1, ……, 元素N-1}

元素操作

Delphi

//取值

v := a[i];

//赋值

a[i] := v;

Go

//取值

v = a[i];

//赋值

a[i] = v;

遍历数组

Delphi

//var a : array[m..n] of Integer;

for i := m to n do

……

//XE之后(也可能更早)也支持以下语法

for v in a do

……

Go

//var a [N]int

for i, v := range a {

……

}

//也可以用传统写法,不过一般不那么写

比较数组

如果两个数组类型相同(包括数组的长度,数组中元素的类型)的情况下,如果两个数组的所有元素都是相等的时候数组才是相等的。

Delphi需要手动遍历比较。Go可以直接用==、<>来比较。

二维数组

未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值