1. Java / Говнокод #27487

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    public static int booleanToInt(Boolean value) {
    
            int res;
    
            if (value == null) {
    
                res = 0;
    
            } else {
                if (value) {
                    res = 1;
                } else {
                    res = 0;
                }
            }
    
            return res;
        }

    Добро пожаловать к нам в индийскую школу программирования!

    Запостил: nekkiy, 28 Июня 2021

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

    • Всегда так пишу.
      Ответить
    • смотри на это как на чёрный ящик - если работает заначит все ОК
      Ответить
      • ...а если выебываться будешь, то он за привилегии спросит
        Ответить
      • два бака – два ширака!

        https://politikus.ru/uploads/posts/2020-11/1606692352_1.jpg
        Ответить
    • В чём здесь говнокод? В том, что на джаве Boolean – это объект, и жабисты СОСНУЛИ?
      Ответить
      • В том, что
        int res = value != null && value ? 1 : 0;

        Ваш КО
        Ответить
        • Тогда уж

          return value != null && value ? 1 : 0;


          А вообще это плохой год. Трудночитаемый, с магическими числами, не интуитивно понятный.
          Ответить
          • Что-то в духе return true.equals(value) ? 1 : 0 не прокатит?

            Или return Boolean(true).equal(value) ? 1 : 0, если само не забоксится...
            Ответить
          • Единица может быть магическом числом, а может и не быть.
            Магические числа это те, которые не входят в область знаний читающего кода.

            Например "2^8" (имеется ввиду степень конечно) звучит как магическое число, но для байтоёба она совсем не магическое, и в лоу левел коде наверное нет смысла выносить его в константу BYTE_CARDINALITY

            А вот для кода магазина на PHP его нужно, разумеется, вынести
            Ответить
            • CHAR_BITS уже нагородили, так что почему бы и не поюзать.
              Ответить
              • хотел доебаца, что там кол-во бит в чаре и теоретически может быть не 8, но уже прописали, что это кол-во бит в байте
                Ответить
                • ТАк поддержку невосьмибитных байтов ещё не дропнули вроде.
                  Ответить
          • value ?? true

            именно поэтому я за сишарп*!

            *в шарпе и вовсе есть нормальная структура nullable, которую сахар еще и позволяет разворачивать не руками, а (в случае с bool?) использовать напрямую в control structures
            Ответить
            • Причем она не reference, а как std::any, что особенно хорошо. В жобе так нельзя

              Джава вообще отстает от C# на бесконечное число лет, что и говорить
              Ответить
    • А мне нравится, совершенно не обязательно помнить как там трактуется if (null), всегда надо писать так, что бы у читающего не возникало лишних вопросов. А что если null это признак ошибки и мы тут это явно обрабатывает? Код устойчивый к ошибкам.
      Ответить

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