
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.216.21] |
![]() |
|
Страницы: (78) « Первая ... 67 68 [69] 70 71 ... 77 78 ( Перейти к последнему сообщению ) |
![]() |
Сообщ.
#1021
,
|
|
Буквоед ![]() |
Сообщ.
#1022
,
|
|
|
Цитата Qraizer @ Это вы ещё в сырцы Дума не заглядывали. Знаете, чем он занимается, когда ещё в текстовом экране точки рисует? Много точек. Строит свой код в памяти в виде кучи функций, отрисовывающих то ли спрайты, то ли текстуры в нужных масштабах, каждая в своём и каждая без переходов и условий. Просто в нужном месте вызывается нужная функция, в зависимости от нужного масштаба. На асме частенько генерировал код и не только такой. Но то дело было на спектруме. Сил на многое не хватало, но писал 512байт демо, по своей сути генераторы, которые забивали всю память кодом и переходили в него. Так что я совсем этому не удивляюсь ![]() Цитата OpenGL @ Буквоед Под обязательностью имелось ввиду его нужность в абсолютном большинстве случаев. Ну и в каком процедурном языке этого не нужно? |
![]() |
Сообщ.
#1023
,
|
|
Цитата Axis @ Ну и в каком процедурном языке этого не нужно? Delphi, например, прекрасно обходится без него. |
Сообщ.
#1024
,
|
|
|
Цитата OpenGL @ Зато там даже так не смогу написать.Delphi, например, прекрасно обходится без него. ![]() ![]() int action = 0; switch(something) { case foo_const: action = 5; case bar_const: call_something(action); } |
![]() |
Сообщ.
#1025
,
|
|
Я и не говорил, что break нужен всегда. Имхо, лучше бы по-дефолту был переход в конец, а если надо идти дальше - вписывать continue.
|
Сообщ.
#1026
,
|
|
|
Цитата Axis @ Зато там даже так не смогу написать. Какая потеря |
![]() |
Сообщ.
#1027
,
|
|
Цитата Axis @ Зато там даже так не смогу написать. Зато в Go сможешь. ![]() ![]() action := 0; switch something { case foo_const: action = 5 fallthrough case bar_const: call_something(action) } И да, согласен с D_KEY. |
Сообщ.
#1028
,
|
|
|
Цитата Axis @ Цитата applegame @ А потом приходит новый разработчик и тратит совсем не чуть-чуть времени, чтобы разобраться во всей этой ахинеи.Тоже мне проблема. Вон руби-программисты живут с таким разрешением и что-то не слышно жалоб - https://ideone.com/DVVp6a Это я к тому, что разрешение перезагрузки операторов для встроенных типов совсем не означает, что все бросятся их перезагружать. То бишь, в самом по себе наличии такого разрешения ничего плохого нет. |
Сообщ.
#1029
,
|
|
|
Цитата applegame @ Однако на практике мы видим, что часто программист использует неудачные особенности языка (иногда доставшиеся в наследство от ранних версий) мотивируя это тем, что раз такая возможность есть, то надо её использовать (этакий фетишизм).Это я к тому, что разрешение перезагрузки операторов для встроенных типов совсем не означает, что все бросятся их перезагружать. Цитата applegame @ Плохое есть в самой возможности переопределять не тобой определённое. Поскольку даже разовое использование такой возможности приведёт к тому, что объект будет по разному себя вести в зависимости от окружения. Сопровождать такой проект будет просто невозможно. То бишь, в самом по себе наличии такого разрешения ничего плохого нет. |
Сообщ.
#1030
,
|
|
|
Цитата amk @ Часто? Лично я никогда не видел чтобы кто-то на практике переопределял операторы для встроенных типов. А ты?Однако на практике мы видим, что часто программист использует неудачные особенности языка (иногда доставшиеся в наследство от ранних версий) мотивируя это тем, что раз такая возможность есть, то надо её использовать (этакий фетишизм). Цитата amk @ Плохое? Это же и есть суть динамического полиморфизма. Виртуальные функции разве не переопределяют не тобой определенное? Плохое есть в самой возможности переопределять не тобой определённое. Поскольку даже разовое использование такой возможности приведёт к тому, что объект будет по разному себя вести в зависимости от окружения. Сопровождать такой проект будет просто невозможно. |
Сообщ.
#1031
,
|
|
|
amk, тебя послушать, так люди на руби прям мучаются страшно... А они вполне себе живут и скорость разработки выше, чем на плюсах.
|
Сообщ.
#1032
,
|
|
|
Цитата applegame @ Я даже не встречал людей, пишущих на языках, позволяющих такое сделать.Лично я никогда не видел чтобы кто-то на практике переопределял операторы для встроенных типов. А ты? Цитата applegame @ Чтобы переопределить виртуальную функцию, ты определяешь новый класс, с новым поведением (хотя и не совсем новым, иначе тоже хлопот не оберёшься), а не переопределяешь поведение существующего. Ты даже можешь выяснить, какого именно класса объект тебе попался. Это же и есть суть динамического полиморфизма. Виртуальные функции разве не переопределяют не тобой определенное? Цитата D_KEY @ Так и я тоже на питоне пишу быстрее, чем на плюсах. При этом питон не позволяет переопределять операции для стандартных типов. Лучше бы вспомнил языки Ada или Algol W. В них ты можешь для существующих типов определять новые операции (имеющиеся при этом остаются неприкосновенными) тебя послушать, так люди на руби прям мучаются страшно... А они вполне себе живут и скорость разработки выше, чем на плюсах. |
Сообщ.
#1033
,
|
|
|
И что в break идиотского ? Напротив, дает возможность перечислять несколько условий для одного действия. |
Сообщ.
#1034
,
|
|
|
Цитата KILLER @ И что в break идиотского ? То, что его можно забыть. И при этом он нужен в большинстве типовых случаев. Добавлено Цитата KILLER @ Напротив, дает возможность перечислять несколько условий для одного действия. Это можно было решить другим синтаксисом. Когда-то ![]() |
Сообщ.
#1035
,
|
|
|
Цитата D_KEY @ То, что его можно забыть. И при этом он нужен в большинстве типовых случаев. Так а зачем? В чем его идиотство заключается? ) Цитата D_KEY @ Это можно было решить другим синтаксисом Например? Добавлено Лишнее слово чтоль? Так лучше тогда экономить на именах переменных/методов/функций/классах )) |