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

    И как же например возвращать результаты при разных входных параметрах функций и условий что внутри? Вот передали в функцию число 5 - попали в одну ветку вычислений, а если 10 - то уже совсем в другую, а если 0, то вообще сразу выйти и возвратить что то ?
    Не, я понимаю что можно, но сколько строчек это займет? Две, как минимум?

    Что? В чем проблема?
    ExpandedWrap disabled
      int f (int x) {
          if (x == 5) {
              someShit();
          } else if (x == 10) {
              someOtherShit();
          } else if (x == 0) {
              someValue;
          } else {
              defaultShit();
          }
      }
    Сообщение отредактировано: korvin -
      Цитата --Ins-- @
      Хорошо Только комментировать все равно не проси, я от такого сам тупею Может у korvin-а и есть иммунитет и выдержка с подобным аргументированно спорить, но у меня в последнее время с ней напряженка

      Да ты прям целка-Будда(надеюсь поймешь о чем я, если нет, то ты и вправду отупел), даже гдето смешно становится, но всеравно это тебе минус в карму. Т.к. что такое хорошо, а что такое плохо - нормальный программер должен понимать. Ты видимо пишешь ВСЕГДА идеальный код. Даже видимо если он кому то костыльным кажется, для тебя он идеален, и показывают тебе судя по всему всегда идеальный код. Т.к. костыльный ты не видел как я понял, ибо ты от разбора чужого кода тупеешь(по твоим же словам). Ну да, делфисты не очень видимо любят командную разработку.

      Добавлено
      Цитата korvin @
      Что? В чем проблема?

      Я вообще не понял что ты привел.

      Добавлено
      korvin, и смысл этой функции и зачем она возвращает int ?
      Сообщение отредактировано: KILLER -
        Цитата KILLER @
        Я вообще не понял что ты привел.

        Добавлено
        korvin, и смысл этой функции и зачем она возвращает int ?

        Это ответ на твой вопрос о том, как быть с ветвлениями в функции, которая просто возвращает результат вычисления последнего выражения тела функции. Без всяких return.
        Но на самом деле все-равно можно еще оставить return(как в Ruby) или сделать его макрасом(как в Nemerle).
          Цитата D_KEY @
          Это ответ на твой вопрос о том, как быть с ветвлениями в функции, которая просто возвращает результат вычисления последнего выражения тела функции. Без всяких return.
          Но на самом деле все-равно можно еще оставить return(как в Ruby) или сделать его макрасом(как в Nemerle).

          Так в том и дело, что я непойму как у него функция что то возвращает? Я не вижу не Result/ни return
            Цитата KILLER @
            Цитата D_KEY @
            Это ответ на твой вопрос о том, как быть с ветвлениями в функции, которая просто возвращает результат вычисления последнего выражения тела функции. Без всяких return.
            Но на самом деле все-равно можно еще оставить return(как в Ruby) или сделать его макрасом(как в Nemerle).

            Так в том и дело, что я непойму как у него функция что то возвращает? Я не вижу не Result/ни return

            Так пример как раз на то, что можно без них обойтись. Функция возвращает результат своего выражения. В данном случае - if(который будет уже не инструкцией, а выражением, т.е. больше похожим на ?: ). В итоге функция вернет значение нужной ветки.

            Добавлено
            В общем если переводить на нормальный С++, то код аналогичен такому(не знаю даже как отформатировать, чтоб читалось нормально) :
            ExpandedWrap disabled
              int f (int x)
              {
                  return
                      x == 5 ?
                          someShit()
                          : x == 10 ?
                              someOtherShit()
                              : x == 0 ?
                                  someValue
                                  : defaultShit();
              }
              Цитата korvin @
              При чем тут это? Мы как раз сейчас про не-делфи и объявление переменных с именем Result. И много у тебя переменных с именем Result?

              Ее кстати вполне себе можно использовать для хранения результатов вызываемых функций:
              ExpandedWrap disabled
                result = do_something(arg);
                 
                if(result != E_OK)
                   return result;
                Цитата Мяут-Настоящий @
                Ее кстати вполне себе можно использовать для хранения результатов вызываемых функций:


                У тебя плохой пример (ну, т.е. код - нормальный, а как пример - не показательный) - т.к. result это результат и вызываемой, и собственной функции, т.е. здесь нет искажения смысла идентификатора. А киллер все стремится исказить

                Добавлено
                Цитата KILLER @
                Так в том и дело, что я непойму как у него функция что то возвращает? Я не вижу не Result/ни return


                Ты походу даже не понимаешь что ты комментируешь, а потом удивляешься что тебе дали странный для тебя ответ :D Ты просил как в случае ветвления будет выглядеть код, где результат - это значение последнего выражения без return/result? Тебе его предоставили любезно, а теперь ты спрашиваешь где то, чего в нем не должно быть :wall:
                Сообщение отредактировано: --Ins-- -
                  Цитата --Ins-- @
                  ы походу даже не понимаешь что ты комментируешь, а потом удивляешься что тебе дали странный для тебя ответ Ты просил как в случае ветвления будет выглядеть код, где результат - это значение последнего выражения без return/result? Тебе его предоставили любезно, а теперь ты спрашиваешь где то, чего в нем не должно быть

                  Так в том примере я хз на каком языке написано, может так в лиспах из функции можно выйти, я ведь пытаюсь перевести все это на то что я понимаю. Вот D_KEY объяснил, я сейчас понял что корвин имел ввиду. А ты только умничать и можешь.
                    Цитата KILLER @
                    А ты только умничать и можешь.


                    Лучше уж умничать чем тупить :wall:
                      Цитата Мяут-Настоящий @
                      Ее кстати вполне себе можно использовать для хранения результатов вызываемых функций:
                      ExpandedWrap disabled
                        result = do_something(arg);
                         
                        if(result != E_OK)
                           return result;

                      Это неудачное имя, т.к. не отражает смысл переменной. И что в таком случае делать, если таких переменных несколько, называть их ResultN? А именно в твоем коде оно ничем не отличается от делфийского Result.

                      Добавлено
                      Цитата KILLER @
                      Так в том примере я хз на каком языке написано, может так в лиспах из функции можно выйти, я ведь пытаюсь перевести все это на то что я понимаю. Вот D_KEY объяснил, я сейчас понял что корвин имел ввиду. А ты только умничать и можешь.

                      Во блин, я-то вначале хотел привести пример на хаскелле, но подумал, что тебе будет сложно его прочитать, поэтому решил дополнить его представлением в Сишном синтаксисе, а затем, что получается дублирование одного и того же и оставил только вариант в Сишном синтаксисе. Но раз ты не можешь абстрагироваться от языка, то впредь я будут приводить примеры кода только в языках, в которых существует обсуждаемый прием.
                      Сообщение отредактировано: korvin -
                        Цитата korvin @
                        Во блин, я-то вначале хотел привести пример на хаскелле, но подумал, что тебе будет сложно его прочитать, поэтому решил дополнить его представлением в Сишном синтаксисе, а затем, что получается дублирование одного и того же и оставил только вариант в Сишном синтаксисе. Но раз ты не можешь абстрагироваться от языка, то впредь я будут приводить примеры кода только в языках, в которых существует обсуждаемый прием.

                        Так ты если пишешь в каком то синтаксисе языка, то пиши в этом стиле, а не городи кашу. У тебя синтаксис сишный, но функция ничего не возвращает, и где она возвращает результат - для меня осталось загадкой. Хорошо что D_KEY телепат умеет твои мысли читать.
                          Цитата KILLER @
                          Так ты если пишешь в каком то синтаксисе языка, то пиши в этом стиле, а не городи кашу. У тебя синтаксис сишный, но функция ничего не возвращает, и где она возвращает результат - для меня осталось загадкой. Хорошо что D_KEY телепат умеет твои мысли читать.


                          Интересно, а как можно на чистом c/с++ написать пример, где результат якобы возвращается без использования return, если с/с++ этого не позволяют? Вопрос чисто риторический
                            Цитата KILLER @
                            Так ты если пишешь в каком то синтаксисе языка, то пиши в этом стиле, а не городи кашу. У тебя синтаксис сишный, но функция ничего не возвращает, и где она возвращает результат - для меня осталось загадкой. Хорошо что D_KEY телепат умеет твои мысли читать.

                            О господи... Ты вообще различаешь синтаксис и семантику? Я могу и CL например прикрутить Си-подобный синтаксис, он после этого станет Сишкой? Нет. Мы обсуждали вполне конкретный прием: возврат значения функции без явного return. У тебя возникли какие-то проблемы с ветвлениями, я спросил: в чем проблема?
                              Цитата korvin @
                              О господи... Ты вообще различаешь синтаксис и семантику? Я могу и CL например прикрутить Си-подобный синтаксис, он после этого станет Сишкой? Нет. Мы обсуждали вполне конкретный прием: возврат значения функции без явного return. У тебя возникли какие-то проблемы с ветвлениями, я спросил: в чем проблема?

                              Я тебе еще раз поясняю, что я вообще не понял твой пример. Во первых, ты просто вызвал 5 функций внутри 5-ти ифов и все. Что я должен из этого кода понять? Откуда мне знать что твои someValue/SomeShift - это возвращаемое значение функции? Где конкретно выход из функции осуществляется? Внутри эти if. Или по выходу из них уже из функции. Тогда куда у тебя результат пишется? У тебя нет ни Result/ ни return. Додумывать что ты там имел ввиду мне лень и нет никакого желания. Либо пиши понятно, либо не пиши вообще.

                              Цитата --Ins-- @
                              Интересно, а как можно на чистом c/с++ написать пример, где результат якобы возвращается без использования return, если с/с++ этого не позволяют? Вопрос чисто риторический

                              Ага, а у него в коде конкретно где ты заметил возвращение результата? Оно даже в Result не записывается. Написать можно псевдокодом, но понятно, в случае чего на крайняк закоментировать.
                              Сообщение отредактировано: KILLER -
                                Цитата KILLER @
                                Что я должен из этого кода понять?


                                Даже я понял, хоть с - это для меня птичий язык :D

                                Цитата KILLER @
                                Где конкретно выход из функции осуществляется? Внутри эти if. Или по выходу из них уже из функции. Тогда куда у тебя результат пишется? У тебя нет ни Result/ ни return. Додумывать что ты там имел ввиду мне лень и нет никакого желания. Либо пиши понятно, либо не пиши вообще.


                                О том, куда и где пишется результат - написал D_KEY, на что ты спросил а как в этом случае быть при ветвлении. Получил ответ и затупил окончательно :D

                                Цитата KILLER @
                                Ага, а у него в коде конкретно где ты заметил возвращение результата?


                                Мдааа
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 415 416 [417] 418 419 ...  494 495


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