1. ActionScript / Говнокод #8453

    −120

    1. 1
    2. 2
    3. 3
    4. 4
    // в BudgetDataVO.as
    public static const CONSOLIDATE_DATA:int = 3;	// when consolidated view is open
    // в другом месте:
    var firstIndex:int = type == BudgetDataVO.CONSOLIDATE_DATA ? -1 : 0;

    Все тот же Сан Диего.

    Запостил: wvxvw, 08 Ноября 2011

    Комментарии (20) RSS

    • Что вас смущает в этом коде?
      Ответить
      • CONSOLIDATE_DATA какбе int, приведенное использование в тернарном операторе - не комильфо, можно было обойтись positive? (псевдокод); затем результат (==) сохраняем в int.
        Ответить
      • Без скобок не выходит каменный цветок. Автор, очевидно, хотел
        var firstIndex:int = (type == BudgetDataVO.CONSOLIDATE_DATA) ? -1 : 0;
        , а получил
        var firstIndex:int = type == (BudgetDataVO.CONSOLIDATE_DATA ? -1 : 0);

        Мой вариант:
        var firstIndex:int;
        if (type == BudgetDataVO.CONSOLIDATE_DATA) firstIndex = -1;
        Ответить
        • удалить константы и построить коммунизм полиморфизм не?
          Ответить
          • На самом деле нужно было больше удалить. И вообще consolidateData должен был быть Boolean, но это уже мелочи.
            Ответить
        • var type:int = 10;
          const CONSOLIDATE_DATA:int = 3;
          var firstIndex:int = type == CONSOLIDATE_DATA ? -1 : 0;
          trace(firstIndex);// 0
          type = 3;
          firstIndex = type == CONSOLIDATE_DATA ? -1 : 0;
          trace(firstIndex);//-1

          Работает именно как var firstIndex:int = (type == BudgetDataVO.CONSOLIDATE_DATA) ? -1 : 0;
          а не var firstIndex:int = type == (BudgetDataVO.CONSOLIDATE_DATA ? -1 : 0);
          Вы не правы. Пишите тесты если не можете в уме просчитать.

          Код абсолютно корректен.
          Ответить
          • Вы чтото имеете против тенарных операторов / констант?) Они вас обижали?
            Ответить
            • Вот и вы сама с собой разговариваете. А на меня бочку катят http://govnokod.ru/8452#comment118234. Типа вам можно, вы - девочка?
              Ответить
              • Конечно можно;)
                Может это стиль у меня такой.
                Так что вы имеете против констант? Или это была ирония;)
                Ответить
              • Ну это она скорее не отвечала себе, а продолжала свой комментарий. Просто отослала не туда.
                Ответить
          • Код в любом случае избыточный (тернарный оператор не нужен, т.как false ветка не нужна), кроме того булианы имитируются через числа зачем-то.
            http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7fd1.html
            Но в целом, да, я почему-то думал, что у ?: приоритет выше, чем у == :О
            Ответить
            • Индекс 0 таки никогда нигде не нужен?:) Просто об этом сложно судить с двух строк.
              Если это индекс какого нибудь компонента списка (комбобокс?) то в принципе понятно почему -1 и 0 а не 1 и 0, не концентрируйтесь на том что эта пара чисел похожа на булеан)
              Моя телепатия натасканная форумами подсказывает что вы недавно сломали "плохой" код:)

              Пы сы, не посылайте меня в хелп я и так там...
              Ответить
              • Индекс 0 получается сам по себе, как только вы объявляете firstIndex, поэтому var firstIndex:int = 0; - тавтология.
                Нет, не сломал, в данном случае, он все равно не работал, дальше этот индекс использовался для того, чтобы в цикле перебирать все элементы какого-то меню, соответственно, по логике автора, нужно было к нему еще единицу прибавить. Но булеаном не индекс должен был быть, а consolidateData - т.как там выбор не большой: либо consolidate, либо нет.
                Если бы вы посмотрели ссылку, то поняли, почему я ее запостил. Собственно, по ссылке таблица приоритетов операторов, в которой видно, что :? находится после == - о чем, вобщем-то, мой последний комментарий.
                Ответить
                • <<Собственно, по ссылке таблица приоритетов операторов, в которой видно, что :? находится после ==
                  Я на это долго и прозрачно намекала:)
                  << Индекс 0 получается сам по себе эмм, я не уверена что это безумно мего кривой ход - написать дефолтное значение для переменной, даже если оно по умолчанию такое.
                  А что касается индексов в списке равным -1 как правило это команда не показывать ни какой элемент, поэтому я и насторожилась.
                  Выложите больше кода, ту же переборку;)
                  Мне столько фигни последнее время убедительным тоном говорили (писали) что я вам не верю. Как пример получасовая дискуссия о том что после изменения as файла не нужно перекомпелировать ибо "оно само".
                  Ответить
                  • Я не говорил "безумный", а "избыточный". Смысл моего предыдущего комментария, и еще одного перед ним в том, что я с вами согласился...
                    Ответить
    • по двум строчкам не построишь целостной картины
      Ответить
    • показать все, что скрытоvanished
      Ответить

    Добавить комментарий