Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 445 446 [447] 448 449 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#6691
,
|
|
|
|
korvin, это шарписты/явисты вроде говорили, а не плюсовики
|
|
Сообщ.
#6692
,
|
|
|
|
Цитата MyNameIsIgor @ А const тебе и не говорит о том, что size() ничего не изменяет. Он говорит о том, что после вызова size() логическое состояние объекта не изменится. Да щас, если автор класса напихал логическое состояние в mutable-поля, const тебе ничем не поможет. Добавлено Цитата D_KEY @ korvin, это шарписты/явисты вроде говорили, а не плюсовики ![]() Ну я и не конкретно к плюсовикам обращался, а к тем, кто говорил. |
|
Сообщ.
#6693
,
|
|
|
|
Цитата korvin @ Цитата MyNameIsIgor @ А const тебе и не говорит о том, что size() ничего не изменяет. Он говорит о том, что после вызова size() логическое состояние объекта не изменится. Да щас, если автор класса напихал логическое состояние в mutable-поля, const тебе ничем не поможет. Так это бага у него уже. Или просто идиот. Цитата Ну я и не конкретно к плюсовикам обращался, а к тем, кто говорил. Так они и про С++ тоже самое писали. |
|
Сообщ.
#6694
,
|
|
|
|
Цитата trainer @ Так если у тебя написано const - это и значит, что не изменяет. А если не написано - надо читать документацию или лезть в реализацию. Зачем? Добавлено Цитата D_KEY @ Так это бага у него уже. Или просто идиот. Но ты-то об этом не узнаешь =) Добавлено Цитата D_KEY @ Так они и про С++ тоже самое писали. Насколько я помню, Джек единственный пару-тройку страниц назад сказал об этом. Впрочем может я проглядел. |
|
Сообщ.
#6695
,
|
|
|
|
Цитата korvin @ Но ты-то об этом не узнаешь =) А я и не буду знать. Он обещал логическую константность - его дело ее обеспечить. Цитата Насколько я помню, Джек единственный пару-тройку страниц назад сказал об этом. Этого мало ? |
|
Сообщ.
#6696
,
|
|
|
|
Да и какая разница как оно там внутри, с точки зрения программиста явовский x += 100 от питоновского x += 100 ничем вообще не отличается. Нет, не так. Скажу по-другому: в яве ты не можешь иметь две переменные, ссылающиеся на одно и то же размещение типа int. Добавлено Цитата D_KEY @ А я и не буду знать. Он обещал логическую константность - его дело ее обеспечить. Ну т.е. все то же самое, что и без const, какие-то обещания есть, а как оно на самом деле -- можно узнать только из кода реализации. |
|
Сообщ.
#6697
,
|
|
|
|
Цитата korvin @ Да щас, если автор класса напихал логическое состояние в mutable-поля, const тебе ничем не поможет. Ну, да, если автор кода - мудак, то таки ничего не поможет, ага |
|
Сообщ.
#6698
,
|
|
|
|
Цитата trainer @ Если он такой - то лучше его не использовать. Мало ли что у него там еще оригинально сделано. С таким подходом, кстати, лучше вообще ничего стороннего не использовать. Ну там, свой компилятор, своя ОСь, свое железо, а то мало ли что оно там делает. Добавлено Цитата MyNameIsIgor @ Ну, да, если автор кода - мудак, то таки ничего не поможет, ага ![]() Ну вот видишь, const не нужен, нужно отсутствие мудаков. =) |
|
Сообщ.
#6699
,
|
|
|
|
Цитата korvin @ в яве ты не можешь иметь две переменные, ссылающиеся на одно и то же размещение типа int. Т.е. если в джаве добавят лямбды, захватывающие примитивные типы по ссылке (как это сделали в шарпе), то ВНЕЗАПНО int станет мутабельным? Добавлено Цитата korvin @ Ну вот видишь, const не нужен, нужно отсутствие мудаков. =) Это ортогональные вещи. |
|
Сообщ.
#6700
,
|
|
|
|
Не, конечно если он еще помогает как-то компилятору лучше оптимизировать код, вопросов нет, для такого явного языка это нужно.
|
|
Сообщ.
#6701
,
|
|
|
|
Цитата korvin @ Не, конечно если он еще помогает как-то компилятору лучше оптимизировать код Нет, не помогает. |
|
Сообщ.
#6702
,
|
|
|
|
Цитата MyNameIsIgor @ Т.е. если в джаве добавят лямбды, захватывающие примитивные типы по ссылке (как это сделали в шарпе), то ВНЕЗАПНО int станет мутабельным? ![]() Ты так говоришь, как будто методы объекта или внутренних анонимных классов не видят свое же окружение. Речь ведь не об этом, а о ссылках и передаче значений в функции. Рекомендую третью вот это. =) |
|
Сообщ.
#6703
,
|
|
|
|
Цитата korvin @ Ты так говоришь, как будто методы объекта или внутренних анонимных классов используют разные переменные. Не-не-не, это ты так говоришь ![]() Цитата korvin @ Речь ведь не об этом, а о ссылках и передаче значений в функции. Эммм... Т.е. именно шарповский ref делает int мутабельным? |
|
Сообщ.
#6704
,
|
|
|
|
Цитата korvin @ Да и какая разница как оно там внутри, с точки зрения программиста явовский x += 100 от питоновского x += 100 ничем вообще не отличается. Прочти уже про примитивные типы в яве/шарпе. В последнем так и свои типы-значения создавать можно. А отличается тем, что про яву - это твои фантазии Цитата в яве ты не можешь иметь две переменные, ссылающиеся на одно и то же размещение типа int. Потому что в яве нет явных ссылок. Т.е. у меня вообще не бывает переменных, ссылающихся на int. Ну нет такого типа. Цитата Ну т.е. все то же самое, что и без const, какие-то обещания есть, а как оно на самом деле -- можно узнать только из кода реализации. Нет, не тоже самое. В одном случае контракт есть и указан, а в другом - нет и о нем нужно догадываться. |
|
Сообщ.
#6705
,
|
|
|
|
Цитата D_KEY @ Прочти уже про примитивные типы в яве/шарпе. В последнем так и свои типы-значения создавать можно. А отличается тем, что про яву - это твои фантазии ![]() И ты прочитай про окружения. =/ И расскажи, как в яве передать int по ссылке. Добавлено Цитата D_KEY @ Потому что в яве нет явных ссылок. Т.е. у меня вообще не бывает переменных, ссылающихся на int. Ну нет такого типа. Ну? Вывод-то какой? Цитата D_KEY @ В одном случае контракт есть и указан Мы же уже выяснили, что наличие mutable рушит весь этот псевдоконтракт. |