На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (495) « Первая ... 447 448 [449] 450 451 ...  494 495  ( Перейти к последнему сообщению )  
> Delphi vs C++ vs C# , ну и Java немножко, где-то ближе к старшему байту номеров страниц
    Цитата trainer @
    Я догадываюсь, о чем ты. Только я работаю с экземпляром типа. А как оно там внутри устроено - ссылка в стек пихается или еще что-то - мне безразлично. Зачем мне разбираться в деталях реализации?

    Эм... Тебе и не нужно, ты не понял. const в делфи -- это не передача константного объекта (даже если он ссылочного типа), это передача по неизменяемой ссылке значения. Т.е. const -- это всегда ссылка, а константность означает лишь то, что ты не можешь в этом окружении изменить ссылку переменной из другого окрудения, как это происходит в случае var. Т.е. const работает практически так же как передача по-значению, только по ссылке.
    Сообщение отредактировано: korvin -
      Цитата korvin @
      Цитата D_KEY @
      В яве примитивные типы аналогичны шарповским. А вот ref отсутствует.

      :wall:

      И так... В яве примитивные типы аналогичны шарповым, но передать их по ссылке как в шарпе нельзя.

      Но никто не исключает появления такой возможности без потери обратной совместимости. Ибо согласно правилам языка, там, как и в шарпе, изменяется именно значение.

      Цитата
      В яве примитивные типы не такие, как в питоне, но в питоне их тоже нельзя передать по ссылке.

      Отсутствие/наличие явных ссылок не связано с тем, являются примитивные типы изменяемыми значениями или нет. В питоне примитивные типы объявлены неизменяемыми. В яве - они считаются изменяемыми.
        Цитата trainer @
        В смысле - может выводить что-то в std::cout? не смущает.

        в смысле вызывает неконстантный метод внешнего объекта (foo).
          Цитата korvin @
          ты не понял. const в делфи -- это не передача по-значению константного объекта (даже если он ссылочного типа), это передача по ссылке значения. Т.е. const -- это всегда ссылка, а константность означает лишь то, что ты не можешь в этом окружении изменить ссылку переменной из другого окрудения, как это происходит в случае var. Т.е. const работает практически так же как передача по-значению.

          Это все понятно. Но никак не мешает изменять переданные объекты :)
            Цитата D_KEY @
            Но никто не исключает появления такой возможности без потери обратной совместимости. Ибо согласно правилам языка, там, как и в шарпе, изменяется именно значение.

            Угу, а в питоне завтра возьмут, да и добавят возможность передавать объект environment, где можно будет по-имени изменить что угодно. (может и так можно, я питон не особо знаю).

            Еще астероид может упасть.

            Цитата D_KEY @
            Отсутствие/наличие явных ссылок не связано с тем, являются примитивные типы изменяемыми значениями или нет. В питоне примитивные типы объявлены неизменяемыми. В яве - они считаются изменяемыми.

            Тем не менее это никого не волнует и x += 100 в питоне работает так же как в джаве.

            Добавлено
            Цитата D_KEY @
            Это все понятно. Но никак не мешает изменять переданные объекты :)

            собственно как и в C++ в приведенном мной случае.
              Цитата korvin @
              const в делфи -- это не передача по-значению константного объекта (даже если он ссылочного типа), это передача по ссылке значения.
              В чем ценность сохранения девственности неизменности адреса объекта?

              Добавлено
              Цитата korvin @
              собственно как и в C++ в приведенном мной случае
              Ты бы это кодом проиллюстрировал.
                Цитата trainer @
                В чем ценность сохранения девственности неизменности адреса объекта?

                В неизменности чужого окружения. Если я передам по var-ссылке данные, то внешняя функция может их подменить. Т.е. не изменить адрес объекат, а заменить другим объектом. В моем окружении.
                  Цитата korvin @
                  Угу, а в питоне завтра возьмут, да и добавят возможность передавать объект environment, где можно будет по-имени изменить что угодно. (может и так можно, я питон не особо знаю).

                  Еще астероид может упасть.

                  Еще раз. Ты выдаешь свои фантазии за действительность, вместо того, чтобы открыть доки. Смысл с тобой спорить?
                  Изменяются именно значения. Так описано в документации и так происходит в реализациях. Вероятность появления ref в Java не такая уж и маленькая, они сейчас "активно развиваются".

                  Цитата
                  Тем не менее это никого не волнует и x += 100 в питоне работает так же как в джаве.

                  Потому, что это уже детали реализации :)

                  Цитата
                  собственно как и в C++ в приведенном мной случае.

                  Так это совсем другой случай :) Что общего?
                    Цитата korvin @
                    Если я передам по var-ссылке данные,
                    А при чем тут var, если речь про const?
                      Цитата trainer @
                      Ты бы это кодом проиллюстрировал.

                      http://ideone.com/Lojlvt

                      (правда с ссылками не работает "error: ‘const’ qualifiers cannot be applied to ‘Foo&’", только с указателями, ну да не важно).

                      Добавлено
                      Цитата trainer @
                      А при чем тут var, если речь про const?

                      При том, что и var и const -- это передача по ссылке, только var позволяет менять объект в другом окружении, а const -- нет.

                      Добавлено
                      Цитата D_KEY @
                      Еще раз. Ты выдаешь свои фантазии за действительность, вместо того, чтобы открыть доки. Смысл с тобой спорить?
                      Изменяются именно значения. Так описано в документации и так происходит в реализациях. Вероятность появления ref в Java не такая уж и маленькая, они сейчас "активно развиваются".

                      Да какая разница, что там изменяется, ссылку-то все равно не получить. Еще раз: для программиста, пишущего на языке это вообще не видимо и не имеет никакого значения, пока не появится возможность взять адрес этого размещения и передать его в функцию. Вот когда появится ref в джаве, тогда и будем возмущаться.

                      Цитата D_KEY @
                      Потому, что это уже детали реализации :)

                      Вот именно, что детали реализации, а для программиста пофигу, работает-то так же. Ты же почему-то на этих деталях акцентируешь внимание.

                      Цитата D_KEY @
                      Так это совсем другой случай :) Что общего?

                      Не знаю чего общего, у тренера спроси, почему он вдруг отождествляет паскалевский
                      ExpandedWrap disabled
                        procedure func(const x : Integer);

                      с сишным
                      ExpandedWrap disabled
                        void func(const int &x);

                      когда это (с одним отличием)
                      ExpandedWrap disabled
                        void func(int &const x);
                      Сообщение отредактировано: korvin -
                        Цитата korvin @
                        Гыгы. И что это иллюстрирует? Что можно изменять не-const объекты? Не забудь оформить заявку на Нобелевскую премию.

                        Добавлено
                        Цитата korvin @
                        При том, что и var и const -- это передача по ссылке, только var позволяет менять объект в другом окружении, а const -- нет.
                        Да мне безразлично, как там работает var. Я про const говорю.
                        Сообщение отредактировано: trainer -
                          Цитата
                          Контракт заключается не в отсутствии физических изменений, а в отсутствии логических.

                          not anymore
                          Цитата
                          А нафейхоа, простите, мне знать, как там устроен метод size() и что он там внутри изменяет?

                          чтобы знать, является ли он потоко-безопастным
                          http://herbsutter.com/2013/01/01/video-you...st-and-mutable/
                          Сообщение отредактировано: Radagast -
                            Цитата korvin @
                            Да какая разница, что там изменяется, ссылку-то все равно не получить. Еще раз: для программиста, пишущего на языке это вообще не видимо и не имеет никакого значения, пока не появится возможность взять адрес этого размещения и передать его в функцию. Вот когда появится ref в джаве, тогда и будем возмущаться.

                            Зачем возмущаться? Ты меня пытался убедить, что там меняется не значение, а биндинг переменной. Так вот. Это не соответствует действительности именно с точки зрения семантики и спецификации языка. То, что по причине отсутствия в языке некоторых средств изменение значение примитивного типа выглядит как изменения биндинга переменной - вопрос уже другой.
                              Цитата korvin @
                              почему он вдруг отождествляет паскалевский
                              Где я там что-то отождествляю?
                                Цитата MyNameIsIgor @
                                Хотя, конечно, да, эти высокоуровневые функциональные языки для чокнутых профессоров, ничего длиннее хелловордов не писавших и не представляющих себе работу инженера, всё обеспечивают, ага. Только никому на МПХ не нужны.

                                Да, а мужики-то не знают.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 447 448 [449] 450 451 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.5763 ]   [ 15 queries used ]   [ Generated: 29.07.26, 08:31 GMT ]