Модератор: Модераторы
runewalsh писал(а):Паскаль не может рулить на «больших проектах», потому что в Паскале ПРИНЯТО...
Или вот, по крайней мере, в среде Delphi ... есть ТРАДИЦИЯ слишком привязываться к платформе...
...FreeAndNil, официально НЕ ПРОВЕРЯЮЩИЙ тип параметра — это вообще вышка (пропускает незамеченной смену типа FreeAndNil'ящейся переменной с объекта на интерфейс, массив или запись — что там про типизацию?).
runewalsh писал(а):Вспомните, например, зачем были введены интерфейсы
runewalsh писал(а):..., или как объяснялись изменения в компиляторе под iOS.
Питон и его синтаксис бред сумасшедсшего.
Сейчас читаю яву - также что-то с чем-то!
runewalsh писал(а):Паскаль не может рулить на «больших проектах», потому что в Паскале ПРИНЯТО использовать низкоуровневые штучки вроде взятия УКАЗАТЕЛЕЙ на элементы динамических массивов, приведения через простой (не as) каст классов, которые ТОЧНО-ТОЧНО ПРИВОДИМЫ и т. д.
Лекс Айрин писал(а):Винда до второй-третьей версии писалась на borland Turbo Pascal. Да и ихний компилятор С написан на нем же
Лекс Айрин писал(а):Программисты майкрософт не могут с тобой согласиться.
debi12345 писал(а):Отсутствие "WITH"-конструкции - огромное неудобство
в Паскале ПРИНЯТО использовать низкоуровневые штучки вроде взятия УКАЗАТЕЛЕЙ
azsx писал(а):Не любите Вы его
Я читал питон только сверху. Синтаксис, так уже привычно, что вместо стандартизации каждый новый ЯП привносит свой 11 стандарт. Но отделять блок пробелами - это нечто! В моём стиле программирования, когда я "увлекаясь" могу написать несколько вложенных операторов или процедуру на тысячу строк кода - отделение блоков табуляцией (пробелами) - это заранее проигрышный вариант.
Сейчас читаю яву - также что-то с чем-то!
Когда разбирался с языком, многое было необычно, но не вызывало отторжения.
Откуда, интересно, эта лажа постоянно проникает в сознание?
serbod писал(а):Компилятор ругается на такие вещи, если предупреждения не отключены.
{$mode objfpc} {$h+}
uses
heaptrc, SysUtils;
type
Struct = record
x, y, z: int64;
end;
StructList = array of Struct;
function Make(const x, y, z: int64): Struct;
begin
result.x := x;
result.y := y;
result.z := z;
end;
function ToString(const s: Struct): string;
begin
result := '(' + IntToStr(s.x) + ', ' + IntToStr(s.y) + ', ' + IntToStr(s.z) + ')';
end;
procedure Add(var list: StructList; const s: Struct);
begin
SetLength(list, length(list) + 1);
list[High(list)] := s;
end;
var
list: StructList;
i: integer;
begin
Add(list, Make(1, 2, 3));
Add(list, Make(4, 5, 6));
Add(list, Make(7, 8, 9));
Add(list, list[0]); // ожидается: (1, 2, 3)
Add(list, list[1]); // ожидается: (4, 5, 6)
Add(list, list[2]); // ожидается: (7, 8, 9)
for i := 0 to High(list) do
writeln(ToString(list[i]));
end.
(1, 2, 3)
(4, 5, 6)
(7, 8, 9)
(-1085102592571150096, -1085102592571150096, -1085102592571150096)
(-1085102592571150096, -1085102592571150096, -1085102592571150096)
(-1085102592571150096, -1085102592571150096, -1085102592571150096)
azsx писал(а):Могу Вам рассказать, только Вам пофиг будет. В сети (особенно на .cn доменах) активно гуляют исходники старых виндосов. Многие люди с удивлением обнаруживали, что некоторые утилиты в винде (ключевые по их словам) написаны на паскале.
runewalsh писал(а):(7, 8, 9)
(-1085102592571150096, -1085102592571150096, -1085102592571150096)
-procedure Add(var list: StructList; const s: Struct);
+procedure Add(var list: StructList; s: Struct);
serbod писал(а):debi12345 писал(а):Отсутствие "WITH"-конструкции - огромное неудобство
Вредная конструкция на самом деле. Затрудняет отладку, провоцирует путаницу для структур с похожими методами. Лучше использовать локальную переменную с коротким именем.
begin
with FBGRA.Canvas2D do begin
moveTo(FPoints[0]);
lineTo(FPoints[1]);
end;
end;
var B with FBGRA.Canvas2D;
begin
B.moveTo(FPoints[0]);
B.lineTo(FPoints[1]);
end;
Вернуться в Компилятор / язык программирования
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1