1. C# / Говнокод #17373

    +97

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if (((((length > 4) && ((anUrl[0] == 'h') || (anUrl[0] == 'H'))) && 
    ((anUrl[1] == 't') || (anUrl[1] == 'T'))) && 
    (((anUrl[2] == 't') || (anUrl[2] == 'T')) &&
    ((anUrl[3] == 'p') || (anUrl[3] == 'P')))) && 
    ((anUrl[4] == ':') || (((length > 5) && 
    ((anUrl[4] == 's') || (anUrl[4] == 'S'))) && (anUrl[5] == ':'))))

    Нашел в коде проверку на http(s)

    Запостил: logman, 26 Декабря 2014

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

    • Символоебство
      Ответить
    • (anUrl[4 + (int)(length > 5)] == ':')
      Ответить
      • Нет, даже так:
        ((anUrl[4] == ':') || (anUrl[4] == 's') || (anUrl[4] == 'S')) && (anUrl[(anUrl[4] == ':') ? 4 : 5] == ':')
        Ответить
    • > anUrl
      aParameter, theDatabase...
      Ответить
      • Надо всё писать во множественном числе. Тогда можно обойтись без артикля, сославшись на то, что он неопределённый.
        Ответить
        • Становится понятнокак появляются мемы про эти вашИ ИнтернетЫ
          Ответить
    • Ох, ебать. Это ведь лаба?
      Ответить
    • Можно так, например:

      char[] a = anUrl.ToUpper().ToCharArray();

      if (anUrl.length > 4)
      {
      if (a[1] == 'T' && a[2] == 'T' && a[3] == 'P' && a[4] == ':')
      do_something();
      }

      if (anUrl.length > 5)
      {
      if (a[4] == 'S' && a[5] == ':')
      do_something();
      }
      Ответить
      • Не хочешь слизнуть мутные капельки?
        Ответить
    • днс резолв - типично 0-50мс
      открытие тцп соединения - 0-50мс
      время ожидания ответа от сервака - от 100мс до inf+
      проверка http или https - 0.000000000000000000001 секунды! (priceless!)
      Ответить
      • Хотел бы я такой компьютер, который выполняет код из поста за то же время, за которое фотон проползает примерно 50 диаметров электрона...
        Ответить
        • фотоны вообще не двигаются.
          Ответить
          • Фотонов вообще нет.
            Ответить
            • Движенья нет, сказал мудрец брадатый.[1]
              Другой смолчал и стал пред ним ходить.
              Сильнее бы не мог он возразить;
              Хвалили все ответ замысловатый.
              Но, господа, забавный случай сей
              Другой пример на память мне приводит:
              Ведь каждый день пред нами солнце ходит,
              Однако ж прав упрямый Галилей.
              Ответить
          • Фотоны не могут не двигаться
            Ответить
            • Чтобы принять это как возражение, нужно так же принимать закон исключенного третьего.

              ОК, зато пайлоны точно не двигаются.
              Ответить
              • Окей, фотоны покоятся со скоростью света, если вам так легче :)
                Ответить
                • Но ведь с точки зрения фотонов пространства не существует (оно бесконечно маленькое), куда ж им двигаться в таком пространстве?
                  Ответить
                  • К сожалению, мы не можем связать ИСО с фотоном, поэтому не можем и представить, как он себе видит вселенную без времени.
                    Ответить
    • Пыховец писал
      Ответить
    • Пирфоманс?
      Ответить
      • Какой пирфоманс? Тут же сравнения не учитывают наиболее вероятный результат: маловероятно, что после H будет t, поэтому нужно сначала посчитать (int)(anUrl[0]) ^ (int)('h'). Если результат равен нулю, наиболее вероятно, что дальше идут сивмолы "ttp", а если результат равен 0x20, то наиболее вероятно, что дальше будут "TTP".

        И да, не учтена разрядность машины. Если строка приходит в восьмибитной кодировке, а машина 32-битная, или если строка в 16-битной кодировке, а машина 64-битная, то можно сравнивать сразу по четыре символа.
        Ответить
        • Сразу видно байтоёба!
          Ответить
          • Или запускать startswith(), который это байтоёбство вполне может и учитывать.
            Ответить

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