26 сообщений перенесены в тему Болталка PascalABC.NET
Невозможно ручаться за всех, что все это будут делать. Предлагаю назначить модераторов, специально следящих за порядком.
А про array of array
?
Для непрямоугольных массивов? Это тут уже не раз писали, как делать можно.
Да, то так не логично получается.
Кстати, благодаря @MrFresnel в PascalABC.NET можно теперь так:
var a := new Dictionary<integer,integer>[10];
-Вы полагаете, все это будет носиться?
-Я полагаю, что все это следует шить!
Сколько не пытаюсь, никак не могу представить, где может понадобиться массив из десяти словарей)). Это что-то из разряда “треххвостой собаки” в рассуждениях академика Китайгородского, или просто мне кругозора не хватает?
Если обобщить - массив из элементов типа T, где T - generic, создавать, как выше, теперь возможно. Разве бесполезная вещь? И не надо объявлять псевдоним в type.
Сделал.
Я проверял перед отправкой на GitHub. У меня они воспроизводятся.
По какому принципу определяется производить ли вызов функции или возвращать ссылку на неё?
function F() := 1;
begin
var (x, y) := (F, F());
Writeln($'x.GetType() = {x.GetType()}, y.GetType() = {y.GetType()}');
end.
Можно было бы предположить, что x будет хранить ссылку на F, однако результаты вывода говорят совсем иное:
x.GetType() = System.Int32, y.GetType() = System.Int32
.
А я, кстати, вспомнил, где использовал array of array в Паскале. В ImageStyler. Теперь он не компилируется из-за Result := new array of Single[n];
.
Указатель на функцию имеет тип Int32.
Не думаю, что это:
x = 1, y = 1
можно назвать указателем на функцию. Это, кстати, при следующем коде:
Writeln($'x = {x}, y = {y}');
.
Тогда - это баг. Делайте Issue.
Погодите. Но мы не выяснили при каких условиях так происходит. И также не выяснили, что должно быть в идеале. Давайте узнаем ответ у разработчиков. Как Вы на это смотрите?
x должен иметь тип делегата, а y - Int32.