Delphi 为什么数组';是谁的名字而不是括号?

Delphi 为什么数组';是谁的名字而不是括号?,delphi,syntax,Delphi,Syntax,访问数组中的元素时,方括号的用法如下: {'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(someNu

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

{'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都是阵列。代码编译没有错误,但我不知道这些点是用来做什么的

  • 是的,现在我知道你在做什么了

    事实上,
    (.
    仅仅是在Delphi中编写
    [
    ]
    的替代方法(但非常罕见!)

    如果
    PBox
    是一个数组,那么
    PBox[a]
    (或者,相当于
    PBox(.a.)
    )将要求
    a
    为整数,对吗?如果
    SBox1[x]
    SBox2[Y]
    是整数,那么它们的位
    也是整数。(按位
    是一种取两个整数并返回一个新整数的操作。)因此,
    PBox(.SBox1[X]或SBox2[Y])
    (SBox1[X]或SBox2[Y])
    数组中的第个元素
    PBox
    ,即整数。因此,计算
    结果
    和该整数之间的按位
    是有意义的,这就是所做的:

    Result := Result or PBox(.SBox1[X] or SBox2[Y].);
    

    我花了将近一分钟才看到这里发生了什么!
    (.
    写入
    [
    的方式非常少见!使用按位
    来计算数组的索引!作为“noob”也是非常少见的,您真的应该开始学习比这简单得多的东西!此外,
    PBox
    是整数数组的一个非常糟糕的名称,因为
    P
    前缀通常表示指针类型,例如
    PInteger
    =^integer
    )@Andreas:你以前见过吗?我从'98年开始使用Delphi,从未见过使用
    (.
    )索引的数组。按位部分我也从未见过,但如果代码使用某些API,则按位
    将需要设置标志。@Fabrico:我从未在实际代码段中见过
    (.
    ),但我知道这一点(虽然一开始我把它误认为是
    (*
    ,编写
    {
    的另一种方式)。按位
    是每个程序员都知道的。正如你所说,它可能最常用于在“位图”中组合标志,但如果你使用低级的东西,应用程序远不止这些。我从来没有见过按位
    作为数组索引,不过…@Andreas:我在DES算法的实现中看到过这一点,pbox代表置换框。按位
    在Win API编程中非常常见(这在VCL的一些低级方法中很常见)-但是在按位表达式上对数组进行索引是你每天都看不到的…;-)非常感谢Andreas..现在我明白了:)现在字符串的
    WeirdLookingArray:array(.1..10.);
    有意义了!