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

    +271.8

    1. 1
    2. 2
    3. 3
    4. 4
    if (result == true)
      return true;
    else
     return result;

    этпипец... из разряда индокода, только в реале

    Запостил: guest, 04 Декабря 2008

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

    • Sap:
      Похоже, сначала возвращалось не булевское значение, а како-0то код ошибки и было что-то вроде:
      if (result == true)
        return -1;
      else
       return result;

      А потом по ходу отладки решили возвращать булевское - поставили заплатку, да так она и осталась. В больший проектах и не такое встречется.
      Ответить
      • неа, надо так:
        if (result == true)
        return true;
        else
        {
        if (result == false) return false;
        else
        {
        return (!true) && (!false); // ну надо же хоть что-то вернуть....
        }
        }
        Ответить
    • показать все, что скрытоили автор кода подразумевал оператор === вместо ==, тогда вполне вменяемый смысл приобретается :)
      Ответить
    • tigerox:
      да с === код не скомпилируется-смысл понятен=)
      Ответить
    • Звездочёт:
      Ну да! Конечно! Автор же не знает значение result! Вот и надо узнать! А то он ещё возвратит result непонятно какой...)
      Ответить
    • Andrei:
      мг...похожее обычно получается после нескольких мелких изменений в коде в разное время. А потом как-нибудь смотришь на весь фрагмент в целом и понимаешь что данунах.
      Ответить
    • AntON-LINE:
      я иногда так куски html комментирую
      ..
      if(0){
      ?>
      <table><tr..<?=$var?>
      строк 30
      </table>
      <?
      }
      главное по view source всего этого не будет ))

      так что в процессе многоразового исправления и не такое "накапливается"
      Ответить
      • а нефиг на сыром пхп писать.
        smarty - наше всё
        Ответить
      • А конструкция my $var if 0; для Перла - это вообще святое! (то есть оно там смысл имеет, его потом в state переименовали, но не суть)
        Ответить
    • Индокод реален, %username%
      Ответить
    • не пиздить, код нормальн для языка где у есть неопределенное значение у логической переменной, например...
      Ответить
    • Если для result переопределён опреатор ==, то смысл есть. Хотя, конечно:
      return result == true;
      Или ещё православней использовать преобразование типа
      Ответить
    • Довольно часто так делают что в вставить берйкпоинт перед возвратом из функции
      Ответить
      • Поддерживаю, иногда возникают задачи, когда BP нужно поставить по определенному условию. Еще ладно, когда это условие выполняется чаще, чем не выполняется... Но если только вероятность - 1%, то приходится прибегать к таким конструкциям... Возможно, человек просто забыл убрать :-)
        Ответить
        • что то забыл, а Condition в BP не вариант использовать?
          Ответить
    • Если result == 1, тогде его результат вернет true ( typeof true == boolean ), а если просто заменить на return result, то получим 1 ( typeof true == number )

      Так-что все кто сразу заржали, что автор полный мудак ВОЗМОЖНО тоже мудаки
      Ответить
    • В некоторых языках это может быть нормальным кодом. В if (result == true) result не обязательно булев тип, а только приводится к нему. То есть если result равен true, то возвращаем true, иначе возвращаем result.

      А вообще надо в таких случаях писать так:
      return not result or true
      Ответить
      • Окейно. Гоните пример. А мы поржем.
        Ответить
      • return (not result) or true 
        |=>
         return true
        Ответить
        • Этот пример всегда возвращает boolean, тогда как исходный говнокод возвращает boolean|mixed
          Ответить
          • Исходный ГК (от ОП'а) эквивалентен return result. (Если, конечно, оператор == не имеет побочных эффектов).

            Ответить
          • P.S. Код return not result or true действительно эквивалентен return true.
            Т.е. если некоторый язык считает, что result это false, то not от этого значения вернет true, в противном случае true вернет правая часть or.
            Ответить
      • Только долбоебы напрямую сравнивают true с другим типом (например int)
        Ответить
        • ещё раз. тип переменной result может приводиться к логическому
          Ответить
    • Например в павне будет работать такая штука.
      new variable = 0;
      if(varible)
      {
      return varible = true;
      }
      else if(!varible)
      {
      return varible = false;
      }
      Ответить
    • Replica Handbags
      Hand bags are the essential accessories for the women as this stuff can add the elegance and beauty in their outlook. The trend of using handbags is rising to the peak level from the time when the celebrities have been going to carry the stylish and branded bags with them.
      The celebrities are the real inspiration behind the rising demands of hands bags A woman who wants to look like a super star always tries to copy her but there is a problem; the branded bags are not very affordable and normally tagged with high price. So how to deal with this problem, very simple just go for replica handbags
      [url=http://www.handbagshermes.org.uk ] Replica Handbags[/url] are carbon copies of [url=http://www.voguesking.net ] replica handbags[/url] . What increase the demand of these [url=http://www.chanel-handbags.co.uk ] replica chanel handbags[/url] is the affordability as it is an accessible for all women. The women who can’t afford the branded and designer bags have an alternative in the form of replica handsbag . By carrying this bag a woman can look like a celebrity and it is what for which she desire always.
      Normally at the first look Free Reprint Articles,you can never find the difference between a [url=http://www.replicacartierhandbags.co.uk ]replica cartier handbags[/url] and its replica but when you look it closely and keenly you noticed several things. The first thing is the quality of material that is used for the production of such bags. By and large the material of these bags is of average quality. Still there are some companies that are using the same quality material as used by designers.
      Ответить

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