Замечания и предложения


#1008

Типизированные константы уже есть.


#1010

Проверьте :wink:


#1011

Считаю, что связываться к реализацией констант в блоке - ненужное дело. Полезность очень сомнительна. Если смотреть на константу, как разновидность переменной, доступной только на чтение, она сродни одноэлементному кортежу. Если уж так приспичило - можно описать его. А если делать полноценно, для констант надо разрешить и кортежную инициализацию и многое другое. Надо разрешать последовательности и массивы констант (а почему нет)? В целом - переписывать массу кода и неизвестно сколько при этом наделать ошибок. А оно того стоит?


#1012

Не думаю, что будет правильно использовать одноэлементные кортежи для замены констант. Так как кортежи используются в основном для группировки значений, а не для того, чтобы имитировать константы.

Услышать бы мнение разработчиков…


#1013

Да, Вы правы. Признаю, ошибся.


#1014

Кроме того, это будет ещё и медленнее.


#1015

Ну, этот пример правильный, но не все константы - это что то с известным заранее значением. Константы - это так же то, что нельзя менять после инициализации.


#1016

14 сообщений перенесены в тему Болталка PascalABC.NET


#1029

На это сообщение поступили жалобы от участников сообщества, поэтому оно временно скрыто.


#1032

23 сообщения перенесены в тему Болталка PascalABC.NET


#1033

Вопрос касательно справки. Почему в списке удалённых из языка конструкций числится library, in, abstract и default?


#1034

Ошибка должно быть. В языке они присутствуют.


#1035

Вот и я говорю. @Admin, обратите внимание.


#1036

#1037
type
  TClass = class // Или record.
    const c = 0;
  end;

begin
end.

Там же, в разделе Отсутствует->Пункт 13:

Константы-поля классов.

Пример программы доказывает абсолютно обратное.


#1038

Кстати, почему об этом в справке ничего не сказано:

type
  TA<T> = class
  end;
  
  TB<T> = class(TA<T>)
  end;
  
begin
  var x := new TB<byte>();
  var y := x as TA<byte>;
  var z := TA&<byte>(x); // <-- Можно
end.

?


#1039

Вот так попробуйте:

var z := TA&<byte>(x);

#1040

Спасибо.


#1041

Если элемент массива не инициализировать при прочетнии его элемента будет выдаваться ошибка. Это баг или фича(с учётом того, что все типы тут классы)?


#1042

какого типа элемент?