Могу ли я объявить переменные в строке, а не в верхней части функции? - PullRequest
3 голосов
/ 09 ноября 2010

Я использовал Visual Basic около 5 лет назад.

, но я начал использовать Delphi 5 лет назад (когда большинство разработчиков перешли с Delphi на Visual Studio) Delphi так же легко, как VB и в то же времяэто рад и надежно.В Delphi много изменений, поскольку pascal (например, строки должны быть по-другому объединены в pascal вместо простого использования +), чтобы ускорить выполнение сценариев.

, но почему в delphi мы должны объявить var сверхуКогда я пишу много утверждений для процедуры, я должен прокрутить вверх и объявить переменную и снова спуститься.Delphi - одна из лучших (иногда единственных и самых) IDE-приложений 'MOST RAPID'est' в мире, но почему они нигде не поддерживали объявление переменных, как в vb c # и т. д.

Ответы [ 5 ]

16 голосов
/ 09 ноября 2010

Можно объявить переменную в середине процедуры, используя шаблон кода, и это также включено по умолчанию с живыми шаблонами в более новых версиях Delphi.

Я просто набираю var и затем нажимаюCTRL + J и введите имя и введите IDE сделает все остальное.

Ничего страшного для меня.

Демонстрация живых шаблонов Майка Розлога:

http://edn.embarcadero.com/article/40284

15 голосов
/ 09 ноября 2010

Если вам нужно прокрутить, ваш метод слишком длинный и, вероятно, нуждается в рефакторинге.

Тем не менее, в последних версиях Delphi вы можете объявить переменную, не перемещая курсор, используясистема рефакторинга .

10 голосов
/ 05 июля 2011

Это даже лучше, чем комбинация клавиш Jens Ctrl-J.

  1. Введите свой код, например ::10000 *

    I := 0;
    
  2. Обратите внимание, что у "I" есть красная волнистая линия под ним (что означает, что оно не указано).

  3. Нажмите «I» и введите ярлык: Shift + Ctrl + V

  4. Вверх откроется окно объявления переменных, в котором обычно будет определен правильный тип для вас.

  5. При необходимости измените тип и нажмите Enter, чтобы закрыть окно.

Мне нравится этот ярлык, и я все время им пользуюсь.

9 голосов
/ 10 ноября 2010

Вы задали этот вопрос: «почему они нигде не поддержали объявление переменной, как в vb c # и т. Д.»

Вот ответ: потому что разработчики языка считают, что объявление переменных в строке является запутанным и трудным для чтения. Если все переменные объявлены на уровне метода, их объявления легко найти, а их типы легко определить. Они считают, что встроенные объявления затрудняют отслеживание переменных и их типа.

Другие разработчики языка предпочитают возможность объявлять переменные inline, но четкое разграничение между кодом и объявлением переменных является одной из причин, по которой многие люди предпочитают Pascal.

2 голосов
/ 26 ноября 2018

В Delphi версии 10.3 Rio можно объявлять переменные и константы inline .

Даже тип может быть выведен.

Примеры:

procedure Test1;
begin
  var i : Integer;
  i := 10;
  WriteLn(i);
end;

Переменные могут быть встроены и назначены:

procedure Test2;
begin
  var i : Integer := 10;
  WriteLn(i);
end;

Могут быть выведены встроенные типы переменных:

procedure Test3;
begin
  var i := 10;
  WriteLn(i);
end;

Область встроенных переменных может быть ограничена начальными / конечными блоками:

procedure Test4;
begin
  var i : Integer := 10;
  WriteLn(i);
  if i < 20 then begin
     var j := 30;
  end;
  Write(j); // <- Compiler error “Undeclared identifier: ‘j’”
end;

Встроенные переменные могут использоваться внутри циклов for-in или for-to:

procedure Test5;
begin
  for var i := 1 to 10 do
    WriteLn(i);
end;

Константы также могут быть встроенными, а тип может выводиться как нормальные константы:

procedure Test6;
begin
  const i : Integer = 10;
  const j = 20;
  WriteLn(j);
end;
...