Size: a a a

2020 October 24

RY

Roman Yankovsky in Delphi & Lazarus
А компилятор обрабатывая лишнюю строку сожжет больше электричества, да
источник

VA

Viktor Akselrod in Delphi & Lazarus
дак еще и программа каждый раз при работе будет больше требовать ресурсов.
экономия должна быть экономной
источник

RY

Roman Yankovsky in Delphi & Lazarus
Ну теперь мне стыдно
источник

SB

Sergey Bodrov in Delphi & Lazarus
Alexey Kulakov
у меня  вглазах рябит иной раз из-за кучи кода, потому мне просто приходится делать типа:
      with ainfo.Entries[i].Files[j] do
     begin
       checksum:=memReadDWord(aptr);
       ftype   :=memReadByte (aptr);
       name    :=memReadShortString(aptr);
       offset  :=memReadDWord(aptr);
       size_s  :=memReadDWord(aptr);
       if (ainfo.ver=verTL2) or (ainfo.ver=verTL2Mod) then
       begin
         ftime:=QWord(memReadInteger64(aptr));
       end;
     end;
Такой код удобно оформить как (вложенную) процедуру, оно и проще и читабельнее будет.
источник

AK

Alexey Kulakov in Delphi & Lazarus
Сергей, я делал как мне было удобнее, исходя из итераций циклов в частности
источник

SB

Sergey Bodrov in Delphi & Lazarus
Alexey Kulakov
Сергей, я делал как мне было удобнее, исходя из итераций циклов в частности
Ну дык. ReadItem(ainfo.Entries[i].Files[j);
источник

AK

Alexey Kulakov in Delphi & Lazarus
не катит
источник

6 Асхатчев in Delphi & Lazarus
Раз паскаль от Алгола, по почему в паскале нету тернарного оператора ?

http://www.ada-auth.org/standards/12rat/html/Rat12-3-2.html

Z := if X = Y then P else Q fi;
источник

AK

Alexey Kulakov in Delphi & Lazarus
потому как пришлось бы передавать и просто ainfo и aptr как минимум
источник

AK

Alexey Kulakov in Delphi & Lazarus
6 Асхатчев
Раз паскаль от Алгола, по почему в паскале нету тернарного оператора ?

http://www.ada-auth.org/standards/12rat/html/Rat12-3-2.html

Z := if X = Y then P else Q fi;
наверное, потому что паскаль - не алгол
источник

6 Асхатчев in Delphi & Lazarus
Но конструкции используются те же, в большинстве. Может создатели просто не знали про тернарный оператор?
источник

AK

Alexey Kulakov in Delphi & Lazarus
а почему в Обероне убрали цикл FOR, ведь в паскале и модуле он был?
источник

AK

Alexey Kulakov in Delphi & Lazarus
а почему в оберон-2 его вернули, ведь в обероне его не было?
источник

AK

Alexey Kulakov in Delphi & Lazarus
потому что это другой язык, не обязанный копировать своего предка 1 в 1
источник

6 Асхатчев in Delphi & Lazarus
Ммм вкусняшка with
источник

SB

Sergey Bodrov in Delphi & Lazarus
Alexey Kulakov
потому как пришлось бы передавать и просто ainfo и aptr как минимум
Если это вложенная процедура, то ей доступен контекст и локальные переменные. Может даже переменные цикла доступны, не уверен. По сути, тот же with только с именем и в отдельном блоке.
источник

6 Асхатчев in Delphi & Lazarus
Alexey Kulakov
а почему в оберон-2 его вернули, ведь в обероне его не было?
Лень, и потом такие - народ гневается. И добавили.
источник

AK

Alexey Kulakov in Delphi & Lazarus
не люблю локальные процедуры делать из-за стеков как раз, только в случае реальной необходимости
источник

AK

Alexey Kulakov in Delphi & Lazarus
нет, дело не в лени. если почитать историю языков, там причина  указывается
источник

SB

Sergey Bodrov in Delphi & Lazarus
Alexey Kulakov
не люблю локальные процедуры делать из-за стеков как раз, только в случае реальной необходимости
Делай inline, вдруг прокатит =)
источник