gpt4 book ai didi

delphi - Delphi中 "&"运算符是什么意思?

转载 作者:行者123 更新时间:2023-12-03 15:03:31 25 4
gpt4 key购买 nike

今天决定使用TParallel.For并在Delphi 10.2.3中成功使用

但是 TParallel.For 有一个奇怪的定义,这种定义对我来说是新的。而且我在 Delphi 文档中找不到它的含义。

class function TParallel.&For(ALowInclusive, AHighInclusive: Integer; const AIteratorEvent: TProc<Integer>): TLoopResult;

这里的&运算符是什么意思?使用 TParallel.&For 或 TParallel.For 之间有什么区别,因为两者都可以编译。

最佳答案

& 符号用于“转义”保留字。考虑以下示例:

function GetPart: string;
const
LoremIpsum = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do ' +
'eiusmod tempor incididunt ut labore et dolore magna aliqua.';
var
start, end: integer;
begin
start := 2;
end := 10;
result := Copy(LoremIpsum, start, end - start + 1);
end;

显然,这不会编译,因为 end 是保留字,因此不能用作标识符。

但是,如果您确实想使用 end 作为变量名称,则可以在其前面加上 & 前缀:

function GetPart: string;
const
LoremIpsum = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do ' +
'eiusmod tempor incididunt ut labore et dolore magna aliqua.';
var
start, &end: integer;
begin
start := 2;
&end := 10;
result := Copy(LoremIpsum, start, &end - start + 1);
end;

这告诉编译器,“嘿,不要将下一个标记视为保留字”。

当然,有人可能会说,在大多数情况下,最好使用非保留字作为标识符,而不是使用 & 技巧来转义标记。然而,有时您需要标识符的名称由其他框架和技术决定,因此 Delphi 需要支持一种允许使用保留字作为标识符的方法。

(但是,就我个人而言,当我发现最自然的选择的标识符恰好是保留字时,我确实倾向于在自己的代码中使用 & 技巧,即使没有 '外部约束需要该名称。)

关于delphi - Delphi中 "&"运算符是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51726992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com