Форум: "Потрепаться";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизА хорошо ли это? Найти похожие ветки
← →
REA (2005-06-02 12:11) [0]Delphi 2005 расширение синтаксиса. Вот думаю баг это или фича?
program MultiArray;
{$APPTYPE CONSOLE}
var
X,Y: array[,] of Integer; // 2 dimensional array
i,j: Integer;
begin
i := 2;
j := 3;
X := New(array[i,j] of Integer); // only size of 2x3 matrix
X[0,0] := 1;
X[0,1] := 2;
X[0,2] := 3;
X[1,0] := 4;
X[1,1] := 5;
X[1,2] := 6;
// type and initializer list
Y := New(array[,] of Integer, ((1,2,3), (4,5,6)));
for i:=0 to 1 do
for j:=0 to 2 do
if X[i,j] <> Y[i,j] then writeln(i,j);
writeln("done");
readln;
end.
← →
VMcL © (2005-06-02 14:31) [1]Расширение синтаксиса, несомненно является, фичей, а не багом.
← →
REA (2005-06-02 14:32) [2]Дык ни у кого своего мнения нет на этот счет или не актуально?
Вроде как это все перпендикулярно идее паскалевского синтаксиса.
← →
Gero © (2005-06-02 14:33) [3]Превратим все баги в фичи!
← →
REA (2005-06-02 14:34) [4]Особенно такие конструкции:
Y := New(array[,] of Integer, ((1,2,3), (4,5,6)));
Оно конечно удобно, но для чего указывать of Integer, когда оно уже и так объявлено как Integer? Т.е. проще было бы так:
Y := New(((1,2,3), (4,5,6)));
← →
REA (2005-06-02 14:35) [5]Или вообще без New.
← →
inic © (2005-06-02 15:11) [6]REA (02.06.05 14:35) [5]
ХМ, а я сижу до сих пор на д7, и видимо буду дальше сидеть, а то каким-то сишарпом попахивает от делфей все больше и больше (хорошо не бейсиком).
← →
Digitman © (2005-06-02 15:11) [7]
> но для чего указывать of Integer, когда оно уже и так объявлено
> как Integer?
и где же в
> Y := New(((1,2,3), (4,5,6)));
объявлено, что 1,2,3,4,5,6 - это Integer ?
← →
AlexKniga © (2005-06-02 16:12) [8]Digitman © (02.06.05 15:11) [7]
> объявлено, что 1,2,3,4,5,6 - это Integer ?
var
X,Y: array[,] of Integer; // 2 dimensional array
← →
DiamondShark © (2005-06-02 16:19) [9]
> и где же в
>
>
> > Y := New(((1,2,3), (4,5,6)));
>
>
> объявлено, что 1,2,3,4,5,6 - это Integer ?
А где в
А := 1;
объявлено, что 1 -- это Integer?
← →
Digitman © (2005-06-02 16:34) [10]
> AlexKniga © (02.06.05 16:12) [8]
> DiamondShark © (02.06.05 16:19) [9]
зря передергиваете)
речь идет о проверке компилятором типов на совместимось.
утверждать не возьмусь, но думаю что при
var
Y: array[,] of Integer;
на выражение
Y := New(array[,] of Dword, (($80000000,2,3), (4,5,6)));
компилятор отреагирует нормально, в то время как за
Y := New((($80000000,2,3), (4,5,6)));
отматерит как положено)
← →
Kerk © (2005-06-02 17:00) [11]AlexKniga © (02.06.05 16:12) [8]
var
X,Y: array[,] of Integer; // 2 dimensional array
дыкvar
Bitmap: TBitmap;
...
Bitmap := TBitmap.Create;
та же самая ситуация
← →
DiamondShark © (2005-06-02 17:43) [12]
> Digitman © (02.06.05 16:34) [10]
Никакого передёргивания.
Просто конструкция избыточная.
← →
REA (2005-06-02 18:02) [13]1) Если идет инициализация, то array[,] лишнее да и слово New тоже. Если инициализации нет, то достаточно Y := New(5,7);
2) Of DWORD оно или Of Integer видимо не слишком важно, т.к. объявлено как Integer и предполагается, что числа тоже будут Integer и зачем дополнительно это писать (хотя можно и явно указать DWORD(2))? Аналогично при объявлении: i: Integer я не обязан писать i := Integer(2), хоть и могу; Т.е. попахивает каким то полиморфизмом данных вроде вариантов.
← →
DiamondShark © (2005-06-02 18:16) [14]Впрочем...
Это ж НЕТ. А там вполне может быть такое:
var
A: TObject;
...
A := New(array[,], ((1,2,3),(4,5,6)));
Вот тут-то явное указание конструируемого типа и нужно.
← →
TUser © (2005-06-02 18:53) [15]Главное - чтобы была совместимость со старям синтаксисом. А Борланд вроде бы старается это поддерживать.
← →
REA (2005-06-03 10:44) [16]Хм. Че ж это за Object такой? Все смешалось в доме Борландовско-Микрософтских...
← →
Kerk © (2005-06-03 10:55) [17]REA (03.06.05 10:44) [16]
в .нет все является наследником обжекта. даже integer
← →
REA (2005-06-03 12:56) [18]Хм. Ну тогда это уже как бы и не Паскаль. Оно конечно давно уже не паскаль, но сейчас это уже дошло до полной анархии. Возможно это и не фатально.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.052 c