为什么在数组名称后面有圆括号和圆点而不是括号?

Adh*_*tta 7 delphi syntax

访问数组中的元素时,使用方括号,如下所示:

{'X is an int and Numbers is an int array'}
X := Numbers[8];
Run Code Online (Sandbox Code Playgroud)

但是,在阅读其他人的代码时,我有时会发现以下语法:

{'PBox , SBox1 , SBox2 are arrays of int , And X,Y are ints'}
Result := Result or PBox(.SBox1[X] or SBox2[Y].);
Run Code Online (Sandbox Code Playgroud)
  1. 在数组名称后面加括号是什么意思PBox(someNumber)?这是访问数组元素的另一种方法吗?
  2. 什么是"." 在SBox1之前和SBox2之后是什么意思?SBox1和SBox2都是阵列.代码编译没有错误,但我不知道那些点是什么.

And*_*and 16

是的,现在我看到你做了什么.

事实上,(.并且.)只是编写[]Delphi的替代方式(但非常罕见!).

如果PBox是一个数组,那么PBox[a](或等价地PBox(.a.))将需要a一个整数,对吗?而如果SBox1[x]SBox2[Y]是整数,所以是按位or他们.(Bitwise or是一个采用两个整数并返回一个新整数的操作.)因此,PBox(.SBox1[X] or SBox2[Y].)(SBox1[X] or SBox2[Y])数组中的第th个元素PBox,即整数.因此,计算在这个整数or之间的按位是有意义的Result,这是完成的:

Result := Result or PBox(.SBox1[X] or SBox2[Y].);
Run Code Online (Sandbox Code Playgroud)

  • 现在`[WeirdLookingArray:array(.1..10.)of string;`来自[Delphi编译器的未来](http://edn.embarcadero.com/article/39174)终于有意义了! (2认同)