当访问数组中的元素时,方括号的使用方式如下:
{'X is an int and Numbers is an int array'}
X := Numbers[8];
但是,在阅读别人的代码时,我有时会发现以下语法:
{'PBox , SBox1 , SBox2 are arrays of int , And X,Y are ints'}
Result := Result or PBox(.SBox1[X] or SBox2[Y].);
- 数组名称后面有括号(如
PBox(someNumber)
中所示)意味着什么?这是访问数组元素的另一种方式吗? - “.”是什么意思? SBox1之前和SBox2之后是什么意思? SBox1 和 SBox2 都是数组。代码编译没有错误,但我不知道这些点的用途。
最佳答案
是的,现在我明白你在做什么了。
事实上,(.
和.)
只是写作的替代方式(但非常不常见!)[
和]
在德尔福。
如果PBox
是一个数组,那么 PBox[a]
(或者,等效地, PBox(.a.)
)将需要 a
是一个整数,对吗?如果 SBox1[x]
和SBox2[Y]
是整数,按位 or
也是整数其中。 (按位or
是一种接受两个整数并返回一个新整数的运算。)因此,PBox(.SBox1[X] or SBox2[Y].)
是(SBox1[X] or SBox2[Y])
数组中的第一个元素 PBox
,即一个整数。因此按位计算 or
是有意义的之间Result
和这个整数,这就是所做的:
Result := Result or PBox(.SBox1[X] or SBox2[Y].);
关于delphi - 为什么数组名称后面有括号和点而不是方括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5157123/