1. C++ / Говнокод #17693

    +48

    1. 1
    (selectedChessman ?: selected)->unselect();

    да уж

    Запостил: artembegood, 24 Февраля 2015

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

    • > ?:
      Гццизм?
      Ответить
      • гццетоз

        если selectedChessman ЛОЖЬ! то ниче не выполниться?
        Ответить
        • Выполнится selected->unselect()
          Ответить
        • a ?: b == a ? a : b
          Ответить
          • при условии, что "a" не имеет побочных эффектов
            Ответить
          • Голдно
            Ответить
          • > a ?: b == a ? a : b
            Навскидку приоритеты в этом выражении? :)
            Ответить
          • Какая прелесть, это же ?? из C# или || из JS. Я давно об этом мечтал.
            Это и правда можно использовать или лучше не надо?
            Ответить
            • Если проект будет компилиться только в gcc - можешь использовать.
              Ответить
            • Сахарок же.
              И опять хочется увидеть ахуй не сильно кодера, который пытается нагуглить очередной ШОЗАНАХ?!?!717
              В большинстве случаев за глаза и уши хватает функций типа coalesce/isNull.
              А вообще по-хорошему мне думается что это борьба с факапом языка — введением в него null.
              Спасут ли нас монады?
              Ответить
              • [ералаш]
                Это все ложь!
                Ты монады не трожь!
                [/ералаш]
                Ответить
              • > борьба с факапом языка — введением в него null
                Так тут не только null. Вот, в жс можно (+x.value || defaultValue) вместо долгой возни с if-ами. Защищает от пустых строк, нулей и некорректного ввода числа. Красота. Ещё бы с полями так было (x.y.z.t === undefined для x === {}).

                Я бы вообще таких значков понавводил для упрощения программистской жизни. А ещё бы разрешил цепочки для +=, *= и подобных операторов.
                Скажем,
                a >? b === a > b ? a : b
                a <? b === a < b ? a : b
                x *= 10 += c - '0'; // для простого и красивого парсинга числа.
                Ответить

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