Яuбy / Говнокод #2416 Ссылка на оригинал

0

  1. 1
some_variable = (some_condition && some_other_condition) ? true : false

Иногда встречаю ГК подобный этому но реализованный в виде case..when. Еще более впечатляет :)

Запостил: shine shine, (Updated )

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

  • Так, давайте один раз представим этот говнокод в разных языках и больше его не будем постить. Можно даже название ему придумать.
    Ответить
  • Давно этому пора название придумать.
    Кстати, в реальных проектах встречается довольно часто 🙂

    [C#]
    bool some_variable = (some_condition && some_other_condition) ? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false? true : false;
    [/C#]
    Ответить
    • У меня часто используется, когда аргумент функции может быть дефолтным

      OBJECT* CreateObject(unsigned size)
      {
      /* ... */
      this->m_size = (size == DEFAULT)? DEFAULT_SIZE: size;
      /* ... */
      }

      И ещё много где. Небесполезен, как goto, если использовать с умом.
      Ответить
      • Да тут кагбэ не о пользе тернарного оператора в целом речь...
        Ответить
  • подскажите говно-новичку как правильно избегать таких ситуаций (

    я так делаю
    if (condition) some_variable=true

    или не так надо) спасибо)
    Ответить
    • не понятно как эта some_variable в дальнейшем используется
      но есть подозрение что не так надо
      Ответить
    • В данном случае следовало написать[ruby]some_variable = (some_condition && some_other_condition)[/ruby]
      Ответить
  • "some_variable = some_condition && some_other_condition"
    Если не важен собственно тип some_variable.
    Если нужен именно boolean, делается cast. (в python'е "some_variable = bool(some_condition and some_other_condition)", в ruby (который я не знаю) вроде можно "some_variable = !!(some_condition && some_other_condition)" (тоже довольно говнисто, надо смотреть в сторону каста, но дальше TrueClass/FalseClass навскидку не нарыл))
    Ответить

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

Помни, guest, за тобой могут следить!

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


    8