Jawa / Говнокод #27487 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 nekkiy, (Updated )

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

  • смотри на это как на чёрный ящик - если работает заначит все ОК
    Ответить
  • В чём здесь говнокод? В том, что на джаве Boolean – это объект, и жабисты СОСНУЛИ?
    Ответить
      • Тогда уж

        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 это признак ошибки и мы тут это явно обрабатывает? Код устойчивый к ошибкам.
    Ответить

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8