Почему компилятор Delphi допускает запятую после последнего параметра в вызове метода? - PullRequest
4 голосов
/ 12 января 2012

Скажем, у меня была такая функция

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

Когда я вызываю такой метод

DoSomething('some text', );

, редактор кода отображает красный волнистый знак в запятой после последнейпараметр, как я и ожидал.Однако компилятор принимает этот код, и все работает так, как будто запятой не было.

Почему это выглядит как допустимый синтаксис?Есть ли какая-то историческая причина, по которой это все еще поддерживается сегодня (я пробовал это в Delphi 2006, и другие , похоже, испытывали это и в 2007 году)?

1 Ответ

6 голосов
/ 12 января 2012

Этот код приводит к ошибке компиляции (E2034 Слишком много фактических параметров) в Delphi 6, 2010 и XE2. Я полагаю, это ошибка компилятора в вашей версии, так как это недопустимый синтаксис.

...