为什么Delphi编译器允许在方法调用的最后一个参数后面有逗号?

问题描述 投票:0回答:1

假设我有一个这样的功能

procedure TMyObject.DoSomething(text: string);
begin
    // do something important with the text
end;

当我像这样调用方法时

DoSomething('some text', );

代码编辑器在最后一个参数后面的逗号处显示红色波浪线,正如我所期望的那样。但是,编译器接受此代码,并且一切正常,就好像逗号不存在一样。

为什么这看起来是合法的语法?是否有一些历史原因,今天仍然支持它(我在 Delphi 2006 中尝试过这个,其他人似乎也在 2007 年经历过)?

delphi history
1个回答
6
投票

该代码在 Delphi 6、2010 和 XE2 中会导致编译错误(E2034 Too much real参量)。我猜这是您版本中的编译器错误,因为它不是合法的语法。

© www.soinside.com 2019 - 2024. All rights reserved.