Д>На самом деле это конечно шутка, но предел упрощению тоже должен быть.
Д>И кстати говоря, упорный борец за простоту и понятность Вирт придумал такую замечательную вещь, как with. И не стыдно ему было других критиковать после этого?
Да вы что! Это же замечательная вещь. Можно работать с неименованной переменной без копирования в локальную переменную. Это и быстро (х.з. сможет компилятор ли соптимизировать лишее копирование), и красиво — не загромождаем код лишними переменными.
with conn.execute('select * from table') do
while not eof do
begin
next;
end
А если функция должна вернуть большой объём данных? На С++ нужно объявлять переменную (которая либо останется неинициализированной, либо вызовется как правило не нужны в данном месте конструктор), потом передавать её по ссылке.
string s;
getString(&s);
s.substr(...);
Или
with GetString do
substr(...);