Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 373 374 [375] 376 377 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#5611
,
|
|
|
|
А шо там на шарпе с конструкторами? Небось такой же бардак как и в делфях.
|
|
Сообщ.
#5612
,
|
|
|
|
|
Сообщ.
#5613
,
|
|
|
|
Цитата Повстанець @ А шо там на шарпе с конструкторами? Небось такой же бардак как и в делфях. ![]() Да, там, кстати, ужасный жестяной ужас Щас нам IL_Agent о нём поведает |
|
Сообщ.
#5614
,
|
|
|
|
Шарпист тоже сбежал.
Трепещут враги! С++ непобедим!!! |
|
Сообщ.
#5615
,
|
|
|
|
Цитата Повстанець @ А шо там на шарпе с конструкторами? Небось такой же бардак как и в делфях. ![]() Там всё очень просто ![]() Цитата MyNameIsIgor @ Да, там, кстати, ужасный жестяной ужас Щас нам IL_Agent о нём поведает Сильнее бросай, недолетает. |
|
Сообщ.
#5616
,
|
|
|
|
|
Сообщ.
#5617
,
|
|
|
|
Цитата korvin @ ут вон ребята из RedHat тоже (привет, JetBrains) пытаются сделать правильную жабу А я думал, что правильная жаба - это скалка... А если ещё правильнее, то замыжание ![]() А вообще [:|||||||||||:] |
|
Сообщ.
#5618
,
|
|
|
|
Цитата MyNameIsIgor @ А вообще [:|||||||||||:] ![]() ну я не слежу, а тут новость на лоре |
|
Сообщ.
#5620
,
|
|
|
|
я в смысле о сегодняшней новости
|
|
Сообщ.
#5621
,
|
|
|
|
Лично у меня, времени нет ну вообще, ещё пылятся почти допиленные мультиметоды и недавно начатая вот эта штука. Добавлено Цитата D_KEY @ Да видел уже, собственно поэтому и просил простой пример без всякой языковой и библиотечной мишуры. Добавлено Цитата korvin @ уу... и только-то. но я бы сказал "в других языках не используется в виду отсутсвия необходимости" =) Во во, лукавить не буду, что аналогичная реализация может и затруднена, но уж точно острой необходимости в этом никогда не возникало (по крайне мере невидно примеров, убеждающих в обратном). Добавлено Цитата Qraizer @ и пожалуйста, меняя свойства, делаем наши символы регистро- и диакритически-независимыми при сравнении. ![]() ![]() type IComparer<T> = interface function Compare(const Left, Right: T): Integer; end; TCharInsensitiveComparer = class(TInterfacedObject, IComparer<Char>) public function Compare(const Left, Right: Char): Integer; override; end; TCharSensitiveComparer = class(TInterfacedObject, IComparer<Char>) public function Compare(const Left, Right: Char): Integer; override; end; var Comparer: IComparer<Char>; A, B: Char; begin Comparer := TCharInsensitiveComparer.Create; if Comparer.Compare(A, B) then ... Comparer := TCharSensitiveComparer.Create; if Comparer.Compare(A, B) then ... end; |
|
Сообщ.
#5622
,
|
|
|
|
Цитата DesweR @ Ага. Сколько там в делфи типов строк понапихано? Во во, лукавить не буду, что аналогичная реализация может и затруднена, но уж точно острой необходимости в этом никогда не возникало (по крайне мере невидно примеров, убеждающих в обратном). ![]() И чего это там за ужос в хвосте поста? Как мне вот так на делфи сделать: ![]() ![]() s1, s2: TOneOfHugeSetDelfiString; s1 := "aaaaBBBB"; s2 := "AAAAbbbb"; if(s1 = s2) writeln("Хочу видеть это сообщение!"); |
|
Сообщ.
#5623
,
|
|
|
|
Цитата Повстанець @ Ага. Сколько там в делфи типов строк понапихано? И? В основном используется только один - string, остальные по необходимости - когда дело касается системщины. Предлагай тогда какую-нибудь задачку. Цитата Повстанець @ И чего это там за ужос в хвосте поста? Что за бред, обоснуешь? Там ничего экстраординарного. Цитата Повстанець @ Как мне вот так на делфи сделать: Писал же. Смотри. ![]() ![]() var s1, s2: TOneOfHugeSetDelfiString; begin s1 := 'aaaaBBBB'; s2 := 'AAAAbbbb'; if Comparer.Compare(s1, s2) then writeln('Хочу видеть это сообщение!'); end; |
|
Сообщ.
#5624
,
|
|
|
|
Цитата DesweR @ Во во, лукавить не буду, что аналогичная реализация может и затруднена, но уж точно острой необходимости в этом никогда не возникало (по крайне мере невидно примеров, убеждающих в обратном). Эти компараторы действуют run-time, а trait'ы плюсов - compile-time. А потом появляются такие статьи о том, как всё это раскочегарить, и россказни о всемогущих JIT'ах, коими нас здесь кормил Вуйко... |
|
Сообщ.
#5625
,
|
|
|
|
Цитата MyNameIsIgor @ Эти компараторы действуют run-time, а trait'ы плюсов - compile-time. Будут дополнительные вызовы, но разница не столь существенна (по отношению ко остальному рабочему коду). ![]() ![]() type TIntComparer = class(TComparer<Integer>) public function Compare(const Left, Right: Integer): Integer; override; end; function TIntComparer.Compare(const Left, Right: Integer): Integer; begin Result := Left - Right; end; var Comparer: IComparer<Integer>; A, B: Integer; begin A := 1; B := 2; Comparer := TIntComparer.Create; Comparer.Compare(A, B); end. ![]() ![]() Project2.dpr.47: Comparer.Compare(A, B); 0044535E 8BCE mov ecx,esi 00445360 8BD3 mov edx,ebx 00445362 A18CCF4400 mov eax,[$0044cf8c] 00445367 8B38 mov edi,[eax] 00445369 FF570C call dword ptr [edi+$0c] 00442715 83C0F4 add eax,-$0c 00442718 50 push eax 00442719 8B00 mov eax,[eax] 0044271B 8B00 mov eax,[eax] 0044271D 870424 xchg [esp],eax Project2.dpr.29: Result := Left - Right; 00442A2C 8BC2 mov eax,edx 00442A2E 2BC1 sub eax,ecx Добавлено Цитата MyNameIsIgor @ Эти компараторы действуют run-time, а trait'ы плюсов - compile-time. А если нужно динамически подменять компараторы по условию? |