Size: a a a

2020 March 05

ГМ

Геннадий Малинин in Delphi & Lazarus
КОгда верхуюю часть сложно отдельить в отдельный метод
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
оффтоп:
Не знал, что можно объявлять массивы с данными (и переменные) в коде без указания типа.
begin
 ... так
 var Str := 'one,two,three';
 var Words := Str.Split([',']);
 ... или так
 var Words := ['one', 'two', 'three'];
 ...
 for var word in Words do
   WriteLn(word);
end;
источник

DB

Dmitry Belkevich in Delphi & Lazarus
aford
А если, например, используется много вложенных циклов? Проще ж выйти через goto, нежели делать проверки и break. Вот из Шилдта:
я изредка перехожу через несколько уровней цикла, бывает удобно. break/continue работают только на одном уровне.
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Геннадий Малинин
оффтоп:
Не знал, что можно объявлять массивы с данными (и переменные) в коде без указания типа.
begin
 ... так
 var Str := 'one,two,three';
 var Words := Str.Split([',']);
 ... или так
 var Words := ['one', 'two', 'three'];
 ...
 for var word in Words do
   WriteLn(word);
end;
новые компиляторы. старые не умеют
источник

AS

Alexey Shumkin in Delphi & Lazarus
aford
Не, делать нечего не надо, я думал может у кого есть готовое решение, где используется этот оператор. А так язык не важен, логика везде одна
На самом деле, я думаю, стоит задать вопрос "почему goto  считается bad practice?"
И мне нравится ответ
https://stackoverflow.com/a/3517763/601185
источник

a

aford in Delphi & Lazarus
Спасибо, почитаю на досуге)
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Dmitry Belkevich
новые компиляторы. старые не умеют
Это то понятно) Но я думал, что тип указывать обязательно.
источник

DB

Dmitry Belkevich in Delphi & Lazarus
автовыведение видимо сделали. вот это, к слову, тоже массив?   var Str := 'one,two,three';
источник

DB

Dmitry Belkevich in Delphi & Lazarus
по идее должна быть строка
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Dmitry Belkevich
автовыведение видимо сделали. вот это, к слову, тоже массив?   var Str := 'one,two,three';
Не, эт строка. Я ж потом её делю Split
источник

DB

Dmitry Belkevich in Delphi & Lazarus
а, ясно
источник

AS

Alexey Shumkin in Delphi & Lazarus
Геннадий Малинин
оффтоп:
Не знал, что можно объявлять массивы с данными (и переменные) в коде без указания типа.
begin
 ... так
 var Str := 'one,two,three';
 var Words := Str.Split([',']);
 ... или так
 var Words := ['one', 'two', 'three'];
 ...
 for var word in Words do
   WriteLn(word);
end;
IDE нормально прыгает к объявлению из места использования?
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Alexey Shumkin
IDE нормально прыгает к объявлению из места использования?
Немного не понял
источник

AS

Alexey Shumkin in Delphi & Lazarus
Геннадий Малинин
Немного не понял
Ctrl+click
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Alexey Shumkin
Ctrl+click
Да, норм
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Кстати, заметил интересную штуку.
...
var Str := 'one,two,three';
var Words := Str.Split([',']);
...
Когда отладчик находится на второй строке, где заполняем массив, переменная Str - пустая, хотя на предыдущем шаге должна заполниться. И только когда мы обращаемся непосредственно к Str.Split, компилятор прыгает на первую строку обратно, где заполняет её))
источник

ГМ

Геннадий Малинин in Delphi & Lazarus
Ну это да, злоупотребление всегда не хорошо)
источник

RS

Renat Suleymanov in Delphi & Lazarus
Goto конечно это некрасиво/запутывает код и т.д. А вот Exit/break/continure вполне себе паскаль стиль и часто юзаю
источник

DB

Dmitry Belkevich in Delphi & Lazarus
важно понимать, в каких условиях goto 'списали'. вот примерно так программы тогда бывало выглядели. сейчас так просто не пишут. ну и злоупотребление приведет к тому же что тут:
https://craftofcoding.wordpress.com/tag/spaghetti-code/
источник

AS

Alexey Shumkin in Delphi & Lazarus
Ну и не забывать теорию разбитых окон... Не только goto касается... Стоит где-то кому-то накостылить, так со временем костыли накапливаются..
источник