Ошибки PascalABC.NET


#1959

А я, кстати, вспомнил, где использовал array of array в Паскале. В ImageStyler. Теперь он не компилируется из-за Result := new array of Single[n];.


#1960

Указатель на функцию имеет тип Int32.


#1961

Не думаю, что это:

x = 1, y = 1

можно назвать указателем на функцию. Это, кстати, при следующем коде:

Writeln($'x = {x}, y = {y}');

.


#1962

Тогда - это баг. Делайте Issue.


#1963

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


#1964

x должен иметь тип делегата, а y - Int32.


#1965

Я не стал делать Issue, так как в том же PascalABC, насколько помню, можно производить вызовы подпрограмм без (). Вот еще пример (в FPC), где вызывается F, без скобочек:

//fpc 3.0.0

program HelloWorld;

procedure F();
begin
    Writeln(1);
end;

begin
    F;
end.

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


#1966

Зачем Program?


#1967

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


#1968

Но в чём смысл последнего кода? Если я правильно понял, то у Вас делегат имеет тип Int32, что является ошибкой. Второй же код - просто определение и вызов метода.


#1969

Чтобы показать, что не только в PascalABC.Net вызов подпрограмм можно осуществлять без ().


#1970

А смысл то в чём? Аааа, допёр. Вы хотите сказать, что и то и то - вызовы. Понял. Но это - ещё один аргумент в мою пользу: запретить вызов метода без скобочек!


#1971

Хорошо. Убедили, я сделаю Issue. Но все же вопрос остается открытым - разработчики не высказали свое мнение.


#1972

Разработчики как раз высказали своё мнение, причём не раз. Они против обязательных скобочек, несмотря на множество подобных проблем. Я думаю, сейчас поднаберётся примеров и можно сделать опрос по этому поводу.


#1973

В плане обучения - введение такого ограничения позволит избежать вопросов в стиле: Почему здесь происходит вызов подпрограммы, вместо возврата на неё ссылки?


#1974

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


#1980

[02.03.15] Добавлены операция =>, создающая KeyValuePair, а также функция Dict, создающая словарь: var d := Dict(‘бегемот’=>2,‘крокодил’=>3).

Я, конечно, понимаю, что это было давно, но почему на этот код:

begin
  var d1 := Dict(0 => 0, 1 => 0);
end.

вот такая реакция:

Program4.pas(2) : Встречено ‘>’, а ожидалось выражение

?


#1981

Она убрана


#1982

Вас понял.


#1983

Здравствуйте разработчики. Вам уже наверное многократно говорили о том. В общем, при наборе и редактировании кода из-за нарастающих тормозов приходится время от времени закрывать и перезагружать IDE. Конечно можно было ещё придраться к некоторым моментам (что Intellisense бывает ошибается), но это по большей частью менее существенные моменты, чем нарастание подтормаживания при редактировании кода (бывает так что редактор начинает откликаться через несколько секунд).