1. PHP / Говнокод #25493

    0

    1. 1
    2. 2
    3. 3
    4. 4
    if (!isset($this->parent->parent->CONFIG['DIR'])) {
                    $this->parent->parent->CONFIG['DIR'] = $this->parent->CONFIG['DIR'];
                    $this->parent->parent->CONFIG['fqdn'] = $this->parent->CONFIG['fqdn'];
    }

    посадил дед репку...

    Запостил: Arris, 01 Апреля 2019

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

    • Интересно, fqdn что-нибудь значит или просто наугад ткнули в клавиатуру?
      const char *random_code()
      {
        return "qfnd fdqn fnqd fdnq"; // Chosen by fair keyboard bashing
      }
      Ответить
    • показать все, что скрытоvanished
      Ответить
      • Я джва года ждал язык программирования с единицами измерения!
        Ответить
        • Можно подумать в других языках нет пользовательских типов.
          Ответить
          • Есть. Я заметил, что, например, в языке Ада нельзя просто так копировать значения одного типа в переменную другого без явного каста, так что вольты в ток или амперы в напряжение случайно не запишешь.
            Ответить
          • Язык Ада:
            With Ada.Text_IO; Use Ada.Text_IO;
            
            procedure Test is
              type Distance is new Float;
              type Velocity is new Float;
              type Time is new Float;
              function "/" (x: Distance; y: Time) return Velocity is begin return Velocity(Float(x) / Float(y)); end;
            
              s: Distance;
              v: Velocity;
              t: Time;
            begin
              s:=100.0;
              t:=10.0;
              v:=s/t;
              Put(Velocity'Image(v));
            end Test;


            По умолчанию между типами Distance, Velocity, Time операции не определены. Я могу сложить Distance с Distance, но не могу сложить Distance с Time. По этой же причине изначально я не могу поделить Distance на Time. Чтобы выполнить это деление, мне пришлось явно определить function "/" со значением типа Velocity. Теперь я могу делить метры на секунды и получать метры в секунду, но складывать метры с секундами по-прежнему не могу.

            Однако, переменным s и t я спокойно присвоил литералы без единиц измерения.
            Ответить
        • https://en.cppreference.com/w/cpp/language/user_literal
          Ответить
          • показать все, что скрытоvanished
            Ответить
            • cpp.sh/8sqtu

              С новыми стандартами в С++ вносится множество различных способов определить типы, даже самые простые.

              Можно порыть сорцы libstdc++, определение типа byte, для наглядности.
              Ответить
              • Можно сделать так, чтобы с яблоками нельзя было складывать ничего, кроме яблок?
                Ответить
                • Можно, если определить\не определить соответствующий оператор.
                  Так же и с байтами, к примеру.
                  Тут всё зависит от того, какие требования на тип данных.
                  Ответить
          • Красиво. Жаль, что работает только в литералах.

            То ли дело:
            http://govnokod.ru/25454#comment464809
            Ответить
            • То другое, na__hui можно перевести как $hui->na, но только оно является идентификатором, т.е. и hui, и na должны быть валидными идентификаторами. Ещё есть вариант na_hui_, но тут hui это уже не переменная, хранящая локаль, а само имя локали.
              Ответить
      • >> Please choose an installation path without spaces and non-ASCII characters, otherwise OpenModelica installation is not guaranteed to work properly.

        Какой багор )))
        Ответить

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