Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 117 118 [119] 120 121 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#1771
,
|
|
|
|
А что там? Цитата Цитата trainer @ Синтаксический сахар - это когда одна конструкция заменяет другую или последовательность других. Он и есть. (я о С++, если не так поняли) Кстати, ты о каких конструкциях в С++ говоришь? Цитата А по мне (хотя мне без разницы) - глупо, неудобно и ничем не оправдано - разбрасывать объявления по всему тексту программы, вопрос вкуса и воспитания. Зачем разбрасывать-то? Надо - объяви и используй. Добавлено Какой семантики? Это синтаксическое дерево, записанное в s-exprs |
|
Сообщ.
#1772
,
|
|
|
|
Цитата korvin @ полностью идентичный код в синтаксисе паскаля. я перевел из s-выражения в С без преобразований AST. Ну молодец И?Цитата D_KEY @ А что там? К Мяуту. Цитата D_KEY @ Кстати, ты о каких конструкциях в С++ говоришь? Да всё о том же "int N = 64". |
|
Сообщ.
#1773
,
|
|
|
|
Цитата DesweR @ Цитата D_KEY @ Кстати, ты о каких конструкциях в С++ говоришь? Да всё о том же "int N = 64". И где тут синтаксический сахар? Добавлено Цитата DesweR @ Цитата korvin @ полностью идентичный код в синтаксисе паскаля. я перевел из s-выражения в С без преобразований AST. Ну молодец И?Так покажи, как перевести его в паскаль... |
|
Сообщ.
#1774
,
|
|
|
|
Цитата D_KEY @ И где тут синтаксический сахар? Цитата trainer Синтаксический сахар - это когда одна конструкция заменяет другую или последовательность других. ![]() ![]() int N; N = 64; int N = 64; Цитата D_KEY @ Какой семантики? Это синтаксическое дерево, записанное в s-exprs Почитал, понял о чём речь. |
|
Сообщ.
#1775
,
|
|
|
|
Цитата DesweR @ Почитал, понял о чём речь. Так ты пример приведи Мда, как можно спорить с человеком, который не имеет понятия о чем идет речь... ? |
|
Сообщ.
#1776
,
|
|
|
|
Цитата KILLER @ Так ты пример приведи Мда, как можно спорить с человеком, который не имеет понятия о чем идет речь... ? А сам можешь привести? Ну тогда не встревай |
|
Сообщ.
#1777
,
|
|
|
|
Цитата DesweR @ А сам можешь привести? Ну тогда не встревай Это будет довольно затруднительно на паскале, хотя с помощью вложенных процедур наверное можно такое сделать, чот то типо: ![]() ![]() program my var i: integer; begin i := 0; print(i); begin i := 1; print(i); i := 2; print(i) end begin ... end; end; Единственный прикол, в том что в С++ коде создаются переменные в локальных блоках, а тут такого нельзя, разве что с помощью внутрених порцедур какнить... |
|
Сообщ.
#1778
,
|
|
|
|
Цитата KILLER @ Единственный прикол, в том что в С++ коде создаются переменные в локальных блоках, а тут такого нельзя, разве что с помощью внутрених порцедур какнить... вот именно, я не зря там написал об ошибке компиляции print(j) во внешне блоке. более того, помнится я показывал, что члены объекта self в методе перекрывают параметры метода. я сейчас не могу проверить, но интересно, на что будет ссылаться x в подпроцедуре Gee: ![]() ![]() type Foo = class x :Integer; procedure Bar; end; procedure Foo.Bar; // <- кстати вот здесь точка с запятой убивает просто =) procedure Gee; var x :Integer; begin WriteLn(x); end; begin Gee; end; |
|
Сообщ.
#1779
,
|
|
|
|
Цитата DesweR @ Цитата D_KEY @ И где тут синтаксический сахар? Цитата trainer Синтаксический сахар - это когда одна конструкция заменяет другую или последовательность других. ![]() ![]() int N; N = 64; int N = 64; Так вот это не синтаксический сахар. Потому что в общем случае в коде вида ![]() ![]() T t; t = something; вызывается сначала конструктор по умолчанию, а потом оператор присваивания. В коде же ![]() ![]() T t = something; вызывается только конструктор с аргументом something. Так что это не эквивалентные отрывки, и второй случай не может считаться просто синтаксическим сахаром. |
|
Сообщ.
#1780
,
|
|
|
|
Цитата korvin @ Это еще ничего. А вот такое:кстати вот здесь точка с запятой убивает просто ![]() ![]() function имя(параметры): результат; stdcall; external библиотека; ![]() ![]() property Enabled: Boolean read GetEnabled write SetEnabled stored IsEnabledStored default True; |
|
Сообщ.
#1781
,
|
|
|
|
Цитата korvin @ более того, помнится я показывал, что члены объекта self в методе перекрывают параметры метода. Т.е? ![]() ![]() type TFoo = class x: Integer; procedure Bar; end; procedure TFoo.Bar; // <- ну и как ты без ; будешь проверять валидность? любимыми (procedure|function|const|type|var|begin)? =) procedure Gee; var x: Integer; begin x := 222; WriteLn(x); end; begin Gee; end; begin Foo.x := 111; Foo.Bar; //получим 222 end; Цитата trainer @ function имя(параметры): результат; stdcall; external библиотека; Это директивы. Цитата trainer @ property Enabled: Boolean read GetEnabled write SetEnabled stored IsEnabledStored default True; А это свойства, с геттерами и сеттерами. Вещи ортогональные. |
|
Сообщ.
#1782
,
|
|
|
|
Цитата DesweR @ Да что ты говоришь? Никогда бы не подумал!А это свойства, с геттерами и сеттерами. И то и другое - объявление. Добавлено Цитата DesweR @ т.е. я могу отдельно без procedure/function написать только stdcall? или только external? Это директивы. |
|
Сообщ.
#1783
,
|
|
|
|
Цитата DesweR @ Цитата korvin @ более того, помнится я показывал, что члены объекта self в методе перекрывают параметры метода. Т.е? т.е. ![]() ![]() type Foo = class x :Integer; procedure Bar (x :Integer); end; procedure Foo.Bar (x :Integer); begin WriteLn(x); // печатается self.x, а не параметр x. в Delphi vs C++ было обсуждение end; ![]() ![]() procedure TFoo.Bar; // <- ну и как ты без ; будешь проверять валидность? любимыми (procedure|function|const|type|var|begin)? =) валидность чего? ![]() ![]() void Foo = fun () { void Gee = fun () { int x = 222; WriteLn(x) }; Gee() }; int Bar = fun (int x, y) (stdcall, extern Lib) { return x + y }; |
|
Сообщ.
#1784
,
|
|
|
|
Цитата DesweR @ Цитата D_KEY @ И где тут синтаксический сахар? Цитата trainer Синтаксический сахар - это когда одна конструкция заменяет другую или последовательность других. ![]() ![]() int N; N = 64; int N = 64; У этих конструкций разная семантика. |
|
Сообщ.
#1785
,
|
|
|
|
Цитата trainer @ т.е. я могу отдельно без procedure/function написать только stdcall? или только external? Естественно нет. Цитата korvin @ WriteLn(x); // печатается self.x, а не параметр x. в Delphi vs C++ было обсуждение А где именно не помнишь? И печатается параметр, а self.x. Цитата korvin @ валидность чего? Я снова тебя не понимаю... Цитата D_KEY @ У этих конструкций разная семантика. В таком случае, в Delphi это будет синтаксический сахар. |