Версия PascalABC.NET 3.4


#122

Начните


#123

Ну хорошо, так а что по вопросу то? Ваша реализация поидее работает на много медленнее, чем если нормальный finally использовать…


#124

А, странно, она уже есть… А поиск не нашёл. @Gleb перенесите пожалуйста.


#125

В каком состоянии находится static?


#126

Куда?


#127

туда. Есть же выше ссылка.


#128

Ну так всё же, @Admin, @ibond , как насчёт ответить на вопрос про finally?


#129

В match разрешает и ставить и не_ставить var:

begin
  match 0 with
    real(r): ;
    byte(var b): ;
  end;
end.

Но при этом не разрешает Не ставить переменную:

begin
  match 0 with
    integer: writeln('0 это integer');//ошибка
  end;
end.

Что из этого так и задумано, а что недоработка?


#130

Так и задумано


#131

А почему запрещено не создавать переменную? Ведь не всегда надо делать это преобразование, бывают случаи когда достаточно знать тип переменной. Это разрешено:

try
except
  on ArgumentException do writeln('неправильные аргументы');
  on e: Exception do writeln(e);
end;

#132

Можно предположить, что разработчики делали match-with с оглядкой на switch (для типов) из C#. Тем более, для проверки соответствия типов можно пользоваться оператором is. Хотя, я с Вами согласен, что снятие запрета может сделать код более компактным.


#133

Ну так а зачем тогда запрещать размерные ограничители?


#134

Для ваших целей используйте if a is B


#135

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


#136

Больше недели (с 11 числа) нету обновлений, снова готовится что то большое?


#137

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


#138

Нет. У нас есть периоды затишья. У нас есть основная работа.

Основные обновления прошли летом - вряд ли стоит ждать больших обновлений в течение учебного года.

Но какие-то ошибки и какие-то улучшения, несомненно будут исправляться и реализовываться.

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


#139

Вроде на это вопрос Ulysses ответил


#140

@Admin компиляция командной строкой зачем то в некоторых случаях вызывает System.Console.ReadKey из метода PascalABCCompiler.ConsoleComliler.CompileAssembly. При этом если перенаправить ввод - получаем ошибку:

Можете, пожалуйста, посмотреть зачем оно там? Зачем вообще консольному компилятору ожидать какого то нажатия клавиш?


#141

А, точно, это при возникновении ошибки компиляции… Можете тогда заменить ReadKey на Read или что то типо него, чтоб не было зависания при запуске консольного компилятора с перенаправленным выводом? Если сейчас не перенаправлять ввод - получаем просто зависание.