Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 8 9 10 11 12 [13] 14 15 16 17 .. 20   вперед  Ctrl
 Re: RAD Studio 10.3 Rio  [new]
ziv-2014
Member

Откуда:
Сообщений: 174
AWSVladimir
ziv-2014
В ряде случаев еще и полезная, т. к. позволяет почистить переменные в рамках блока, а не в конце функции.

Пойми из строгого языка делаю г-вно, если ты работал на си то знаешь, что многие макросы в Си просто так не прочитать/не понять, недавно на хабре исповедь разработчиков оракла была, что некоторые макросы просто не трогают, так как не понимают как они работают.
Да, да в си это возможно!
Тут такую же фигню хотят сделать, что бы понять логику паскаля нужно 2 вещи.
1. Открыть определение переменных (если нет стандарта венгерской нотации)
2. Открыть код
и все

В Си же и в 10.3 этого уже мало, нужно пробежаться по всему коду и определить, а какой же тип у переменных.
А если 20 переменных?
Это сколько нужно сделать ТУПОЙ не нужно работы?

И ты написал "почистить переменные в рамках блока"
почистить - это освободить память или изменить значение самой переменной?
Если освободить память то нафига?
Если изменить значение переменной, что мешало сделать это ранее, явно и красиво?
PS: Не устанавливал еще 10.3 и думаю сейчас, а нафиг?
Сильно, сильно меня расстроили.
Код компилятора не оптимизирован, глюки на глюгах в среде, блин у них там нет там даже одного тестирощика что ли, что бы пунктуально все проверить? Про автоматизированные тесты вообще молчу, неадертальцы блин.
Теперь еще херню, прости господи, встраивают в самый лучший язык программирования.

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

Освободить память, например для интерфейсов. Раньше приходилось создавать отдельную локальную процедуру, чтобы произошла очистка интерфейса, а сейчас в конце блока - красота :)
6 дек 18, 20:06    [21756337]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
AWSVladimir
Member

Откуда:
Сообщений: 858
Фэйтл Эра
Вот не поверишь, уже задумался.
2 перста тут низкоуровневое программирование.
Или зафиксироватся на 10.2
6 дек 18, 20:22    [21756357]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
defecator
Member

Откуда:
Сообщений: 38961
AWSVladimir,

я уже просто смотрю, как Delphi превращают в истинное, отборное говно
6 дек 18, 20:25    [21756360]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
AWSVladimir
Member

Откуда:
Сообщений: 858
ziv-2014
Освободить память, например для интерфейсов. Раньше приходилось создавать отдельную локальную процедуру, чтобы произошла очистка интерфейса, а сейчас в конце блока - красота :)

Ну ты же понимаешь, что "чистка интерфейса" это в 99,9999% случаев только уменьшение счетчика.
Какая разница где очистится?
И зачем локальная процедура?
Почему IMyInterface:=nil; не помогало?
6 дек 18, 20:26    [21756361]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
rgreat
Member

Откуда:
Сообщений: 4584
Не нравиться - не пользуйся. В чем проблема-то?
6 дек 18, 20:30    [21756366]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
defecator
Member

Откуда:
Сообщений: 38961
rgreat
Не нравиться - не пользуйся. В чем проблема-то?

суть не в этом, но вам, пляшущих на костях, этого не понять
6 дек 18, 20:34    [21756372]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
AWSVladimir
Member

Откуда:
Сообщений: 858
defecator
я уже просто смотрю, как Delphi превращают в истинное, отборное говно

А я Миша, на твой бы компилятор на паскале, для железяк, перешел бы. ))
Обалденную штуку ваял.
6 дек 18, 20:36    [21756373]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
defecator
Member

Откуда:
Сообщений: 38961
AWSVladimir
defecator
я уже просто смотрю, как Delphi превращают в истинное, отборное говно

А я Миша, на твой бы компилятор на паскале, для железяк, перешел бы. ))
Обалденную штуку ваял.

смотря какие железки.
Вот есть такой проект Ultibo - это 100% нативная ОС для Raspberry PI, написанная на чистейшем Паскале.
https://ultibo.org/

Никаких говнолинуксов и прочей ереси.
Вся мощь кристалла в твоих руках
6 дек 18, 20:40    [21756377]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 226
AWSVladimir
Или зафиксироватся на 10.2

Боишься, что не удержишься?
6 дек 18, 20:45    [21756384]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
rgreat
Member

Откуда:
Сообщений: 4584
defecator
rgreat
Не нравиться - не пользуйся. В чем проблема-то?

суть не в этом, но вам, пляшущих на костях, этого не понять

То-то и оно что не ясно как может кому-то мешать опциональная фича.
6 дек 18, 20:49    [21756389]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
defecator
Member

Откуда:
Сообщений: 38961
rgreat
defecator
пропущено...

суть не в этом, но вам, пляшущих на костях, этого не понять

То-то и оно что не ясно как может кому-то мешать опциональная фича.

генерики - тоже опциональная фича
6 дек 18, 20:58    [21756405]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
rgreat
Member

Откуда:
Сообщений: 4584
defecator,

Генерики могут в RTL и компонентах выдаваться на ввод/вывод.
В отличие от них инлайн переменные никак на твой код не повлияют.
6 дек 18, 21:01    [21756406]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
AWSVladimir
Member

Откуда:
Сообщений: 858
rgreat
В отличие от них инлайн переменные никак на твой код не повлияют.

Поддержка кода.
Вот просто так, с нуля бац и время поиска багов увеличилось с этой фичей на порядок.
"Тут читаем, тут не читаем, тут рыбу заворачиваем" (с)
6 дек 18, 21:08    [21756411]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
AWSVladimir
Member

Откуда:
Сообщений: 858
defecator
https://ultibo.org/

Интересная штука, спасибо!
6 дек 18, 21:10    [21756413]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Vlad F
Member

Откуда:
Сообщений: 333
defecator
rgreat
пропущено...

То-то и оно что не ясно как может кому-то мешать опциональная фича.

генерики - тоже опциональная фича

Я вам даже больше скажу, - то все фичи по природесвоей опциональны.
6 дек 18, 21:33    [21756435]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
ziv-2014
Member

Откуда:
Сообщений: 174
AWSVladimir
ziv-2014
Освободить память, например для интерфейсов. Раньше приходилось создавать отдельную локальную процедуру, чтобы произошла очистка интерфейса, а сейчас в конце блока - красота :)

Ну ты же понимаешь, что "чистка интерфейса" это в 99,9999% случаев только уменьшение счетчика.
Какая разница где очистится?
И зачем локальная процедура?
Почему IMyInterface:=nil; не помогало?

Нет не помогало и угадай причину. Отладчик в помощь :)
6 дек 18, 21:42    [21756441]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1203
AWSVladimir
когда переменная по ходу листинга меняет тип (((

Вы допускаете, что в методе одна переменная может выступать под разные логические значения? Какой ужас..
6 дек 18, 22:07    [21756452]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
rgreat
Member

Откуда:
Сообщений: 4584
AWSVladimir
rgreat
В отличие от них инлайн переменные никак на твой код не повлияют.

Вот просто так, с нуля бац и время поиска багов увеличилось с этой фичей на порядок.

Отчего это может произойти? Ну хоть в теории?
6 дек 18, 22:13    [21756455]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
AWSVladimir
Member

Откуда:
Сообщений: 858
ziv-2014
Нет не помогало и угадай причину. Отладчик в помощь :)

Расскажи в кратце, в чем проблема, так как вариантов юзания много:
1.Создание интерфейсных объектов м/б 2-мя путями.
а) Создание объекта который создается и сам раздает функциональность ч/з интерфейсы
б) Создается временная прокладка которая юзает основной объект.

2. Юзание интерфейсов
а) внутри собственного модуля
б) только из внешних модулей

3) В методах получении интерфейса.

То есть как правило функциональный объект создается 1 раз и удаляется 1 раз и вся движуха в изменении количества ссылок или создание/удалении прокладок.

Лучше напиши проблемный пример.
Так как с этими интерфейсами кто во что горазд пишет, нет единого использования как при юзании объектов.
6 дек 18, 22:18    [21756458]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
AWSVladimir
Member

Откуда:
Сообщений: 858
X-Cite
AWSVladimir
когда переменная по ходу листинга меняет тип (((

Вы допускаете, что в методе одна переменная может выступать под разные логические значения? Какой ужас..


Не логические, а иметь разные типы с одним именем.
JaDi же писал:
JaDi
zinpub
А так можно ?

procedure TForm1.btn1Click(Sender: TObject);
begin
  for var a:= 'a' to 'z' do
    mmo1.Lines.Add(a);

  for var a:= 0 to 10 do
    mmo1.Lines.Add(IntToStr(a));
end;

Можно.
6 дек 18, 22:21    [21756461]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1203
AWSVladimir
X-Cite
пропущено...

Вы допускаете, что в методе одна переменная может выступать под разные логические значения? Какой ужас..


Не логические, а иметь разные типы с одним именем.
JaDi же писал:
JaDi
пропущено...

Можно.

Можно не значит нужно.. Тем более видимость у них разная.. А по хорошему или 2 метода или мышкой навели и посмотрели... то что intellisense тупой это не проблема компилятора...
6 дек 18, 22:26    [21756465]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
rgreat
Member

Откуда:
Сообщений: 4584
AWSVladimir
Лучше напиши проблемный пример.

OldSchool:
var
  x : IMyInterface;
begin
  // какой-то код
  if random(10000)=1 then begin
    x:=GetMyInterface;
    x.DoSomething;
  end;
  // какой-то код
end;
vs NewSchool:
begin
  // какой-то код
  if random(10000)=1 then begin
    var x:= GetMyInterface;
    x.DoSomething;
  end;
  // какой-то код
end;

Во втором случае нет деструктора интерфейса каждый раз если он не нужен.
6 дек 18, 22:26    [21756466]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
AWSVladimir
Member

Откуда:
Сообщений: 858
Classic School:
var
  x : IMyInterface;
begin
  // какой-то код
  if random(10000)=1 then begin
    x:=GetMyInterface;
    x.DoSomething;
    x:=nil;
  end;
  // какой-то код
end;

Намного лучше чем ожидать в коде:
begin
    var x:= 1;
 // ....
    var x:= 1.024;
 // ....
    var x:= '1';
 // ....
    var x:= '1.024';
 // ....
    var x:= Now;
end;
7 дек 18, 09:38    [21756648]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1203
AWSVladimir
Classic School:
var
  x : IMyInterface;
begin
  // какой-то код
  if random(10000)=1 then begin
    x:=GetMyInterface;
    x.DoSomething;
    x:=nil;
  end;
  // какой-то код
end;

Намного лучше чем ожидать в коде:
begin
    var x:= 1;
 // ....
    var x:= 1.024;
 // ....
    var x:= '1';
 // ....
    var x:= '1.024';
 // ....
    var x:= Now;
end;

А так нельзя писать, компилятор ругнется. Область видимости то у них одна.
7 дек 18, 10:00    [21756678]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 226
AWSVladimir
...чем ожидать в коде:
begin
    var x:= 1;
 // ....
    var x:= 1.024;
 // ....
    var x:= '1';
 // ....
    var x:= '1.024';
 // ....
    var x:= Now;
end;

Ты так и не сможешь, придется вот так:
begin
  begin
    var x:= 1;
 // ....
  end;
...
  begin
    var x:= 1.024;
 // ...
  end;
...
  begin
    var x:= '1';
 // ....
  end;
...
  begin
    var x:= '1.024';
 // ....
  end;
...
  begin
    var x:= Now;
...
  end;
end;

Впочем, очевидно, что тут дело не в истине, а в чувстве собственной правоты, тут никакие аргументы не помогут.
7 дек 18, 10:00    [21756680]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 8 9 10 11 12 [13] 14 15 16 17 .. 20   вперед  Ctrl
Все форумы / Delphi Ответить