Есть ли в Delphi условный оператор или он когда-либо будет? - PullRequest
32 голосов
/ 21 января 2010

Я держал руки от Дельфи слишком долго, наверное; За последние пару лет я много занимался Java и PHP. Теперь, когда я вернулся к выполнению небольшой работы в Delphi, я понял, что действительно скучаю по условному оператору, который поддерживается и Java, и PHP.

На скольких местах вы найдете такие строки в ваших программах на Delphi?

var s : string;
begin
  ...<here the string result is manipulated>...

  if combo.Text='' then
      s := 'null'
    else
      s := QuotedStr(combo.Text);

  result := result + s;
end;

где простой

result := result + (combo.text='')?'null':quotedStr(combo.text);

будет достаточно. Что мне нравится в этом, так это то, что он не только сокращает код, но и избегает объявления некоторой вспомогательной переменной s:string.

Почему условные операторы не являются частью Delphi и будут ли они когда-либо поддерживаться? Я заметил, что для версии Delphi 2009 (generics) было сделано несколько языковых расширений, так почему бы не добавить эту функцию?

Ответы [ 11 ]

0 голосов
/ 23 января 2010

Еще лучше перегруженный IIF (встроенный, если), который поддерживает несколько типов данных и результатов.

...