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

    там нет неявных блоков. синтаксис примерно такой:
    ExpandedWrap disabled
      if-statement ::= "if" condition then-expr ["else" else-expr] ";"
      condition ::= expression
      then-expr ::= expression
      else-expr ::= expression
       
      expression ::= single-expr | "{" {single-expr} "}"

    все логично

    Где там? В С++ - там есть неявный блок.
    Тут это более очевидно:
    ExpandedWrap disabled
      if (int x = ...) cout << x << ...;

    x - существует только внутри блока if.
      Цитата D_KEY @
      Где там? В С++ - там есть неявный блок.
      Тут это более очевидно:
      ExpandedWrap disabled
        if (int x = ...) cout << x << ...;

      x - существует только внутри блока if.

      какого блока? напиши с явным блоком

      Добавлено
      Цитата D_KEY @
      Цитата
      кстати в делфи как раз недавно появилась поддержка svn, кто-то из местных делфистов ее юзает?

      :lool: Да уж, передовой инструмент разработки и ультра современная IDE

      да, сам смеялся
        Цитата korvin @
        Цитата D_KEY @
        Где там? В С++ - там есть неявный блок.
        Тут это более очевидно:
        ExpandedWrap disabled
          if (int x = ...) cout << x << ...;

        x - существует только внутри блока if.

        какого блока? напиши с явным блоком

        ExpandedWrap disabled
          if (int x = ...) {
              cout << x << ...;
          }

        Это тождественные варианты.

        Добавлено
        Цитата
        if the substatement in a selection-statement is a single state-
        ment and not a compound-statement, it is as if it was rewritten to be a compound-statement containing the
        original substatement. [Example:
        ExpandedWrap disabled
          if (x)
              int i;

        can be equivalently rewritten as
        ExpandedWrap disabled
          if (x) {
              int i;
          }

        Thus after the if statement, i is no longer in scope. ]
          Цитата D_KEY @
          ExpandedWrap disabled
            if (int x = ...) {
                cout << x << ...;
            }

          Это тождественные варианты.

          эм... так объявление x находится вне блок, но при этом никакого блока, обрамляющего объявление x нет

          Цитата D_KEY @
          Цитата
          if the substatement in a selection-statement is a single state-
          ment and not a compound-statement, it is as if it was rewritten to be a compound-statement containing the
          original substatement. [Example:
          ExpandedWrap disabled
            if (x)
                int i;

          can be equivalently rewritten as
          ExpandedWrap disabled
            if (x) {
                int i;
            }

          Thus after the if statement, i is no longer in scope. ]

          ну дык в обоих случаях
          then-expr ::= expression

          только в первом в качестве expression выступает single-expr, во втором -- block-expr
          Сообщение отредактировано: korvin -
            Цитата korvin @
            только в первом в качестве expression выступает single-expr, во втором -- block-expr

            Причем тут expression'ы? В общем, это блок :) Со всякими вытекающими отсюда последствиями в виде вызовов деструкторов и т.п. вещей.
              Цитата D_KEY @
              Цитата korvin @
              только в первом в качестве expression выступает single-expr, во втором -- block-expr

              Причем тут expression'ы? В общем, это блок :) Со всякими вытекающими отсюда последствиями в виде вызовов деструкторов и т.п. вещей.

              дык где блок--то? блок идет после объявления x, а где блок, обрамляющий объявление x, дабы оно не было видно за пределами if?
                Цитата korvin @
                блок идет после объявления x, а где блок, обрамляющий объявление x, дабы оно не было видно за пределами if?

                Нигде. Но x не будет видно за пределами блока(или отдельной инструкции) if.

                Добавлено
                В общем я за то, что бы {} были обязательными, раз уж там не выражения, а фактически блок инструкций.

                Добавлено
                По крайней мере сейчас мне кажется, что так было бы лучше.
                Сообщение отредактировано: D_KEY -
                  Цитата D_KEY @
                  P.S. про неявные блоки никто ничего не сказал

                  Они как неявные касты - кода меньше, но чреват ошибками :) Тем не менее, не допускал их уже давно, потому как даже в фаре редактор нормально за отступами следит, и я логику кода не теряю.
                    Цитата MyNameIsIgor @
                    Цитата D_KEY @
                    P.S. про неявные блоки никто ничего не сказал

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

                    Да я вроде тоже логику не теряю, но читается все-таки хуже. Даже с нормальным форматированием. ИМХО ;)
                      Цитата D_KEY @
                      Да я вроде тоже логику не теряю, но читается все-таки хуже. Даже с нормальным форматированием. ИМХО

                      Да брось, нормально оно читается. Не надо просто писать длиннющие вложенные друг в друга if - else if.
                        Цитата MyNameIsIgor @
                        Цитата D_KEY @
                        Да я вроде тоже логику не теряю, но читается все-таки хуже. Даже с нормальным форматированием. ИМХО

                        Да брось, нормально оно читается. Не надо просто писать длиннющие вложенные друг в друга if - else if.

                        Я не пишу :D
                        Ладно, будем считать все это моим личным заскоком.
                          Цитата D_KEY @
                          Нигде. Но x не будет видно за пределами блока(или отдельной инструкции) if.

                          В общем я за то, что бы {} были обязательными, раз уж там не выражения, а фактически блок инструкций.

                          По крайней мере сейчас мне кажется, что так было бы лучше.

                          мда... вот у вас заморочки, то ли дело лисп или хаскелл...
                            Цитата korvin @
                            мда... вот у вас заморочки, то ли дело лисп или хаскелл...

                            Как там Flex как-то сказал... нечто вроде "мучительный выбор: применить ли мне здесь монаду или просто замкнуть накоротко?" :)
                              Цитата korvin @
                              Цитата D_KEY @
                              Нигде. Но x не будет видно за пределами блока(или отдельной инструкции) if.

                              В общем я за то, что бы {} были обязательными, раз уж там не выражения, а фактически блок инструкций.

                              По крайней мере сейчас мне кажется, что так было бы лучше.

                              мда... вот у вас заморочки, то ли дело лисп или хаскелл...

                              хаскелл все-таки мне не нравится. А вот на счет лиспа согласен. Кстати, пытаюсь найти время на clojure. Пока дальше тестовых примеров не доходит :'(

                              Добавлено
                              Цитата MyNameIsIgor @
                              Цитата korvin @
                              мда... вот у вас заморочки, то ли дело лисп или хаскелл...

                              Как там Flex как-то сказал... нечто вроде "мучительный выбор: применить ли мне здесь монаду или просто замкнуть накоротко?" :)

                              :D
                                Цитата MyNameIsIgor @
                                Как там Flex как-то сказал... нечто вроде "мучительный выбор: применить ли мне здесь монаду или просто замкнуть накоротко?" :)

                                эээ... монада и замыкание -- ортогональные сущности, не взаимозаменяемые, так что вне контекста фраза Флекса бессмысленна
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (495) « Первая ... 108 109 [110] 111 112 ...  494 495


                                Рейтинг@Mail.ru
                                [ Script execution time: 0.2071 ]   [ 14 queries used ]   [ Generated: 30.07.26, 13:56 GMT ]