Кресты / Говнокод #23674 Ссылка на оригинал

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
switch (sy->type) {
if (0) case RTLIL::ST0: f << stringf("low ");
if (0) case RTLIL::ST1: f << stringf("high ");
if (0) case RTLIL::STp: f << stringf("posedge ");
if (0) case RTLIL::STn: f << stringf("negedge ");
if (0) case RTLIL::STe: f << stringf("edge ");
    dump_sigspec(f, sy->signal);
    f << stringf("\n");
    break;
case RTLIL::STa: f << stringf("always\n"); break;
case RTLIL::STg: f << stringf("global\n"); break;
case RTLIL::STi: f << stringf("init\n"); break;
}

Не видел ещё тут такого. Новый вид гоатсеуту.
Нашел тут:

https://tinyurl.com/y8eov5pc // https://www.reddit.com/r/cpp_questions/comments/7swqbp/if_0_case/
Исходник:
https://tinyurl.com/ybtoqeon // https://github.com/fabiensanglard/xrick/blob/239d213f01be8d0086c449080ce61bde8dcad7b4/src/data.c#L189

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

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

  • В связи с неисправностью голо-совалки, объявляю сий комментарий заглушкой рейтинга поста.
    Ответить
  • Хм, красивый паттерн в строках 2-6. Надо запомнить.
    Ответить
    • > C#
      я_ебу_собак.cs(9,3): error CS1525: Unexpected symbol `if', expecting `}', `case', or `default:'
      Compilation failed: 1 error(s), 0 warnings
      Ответить
      • Скучный язык этот ваш C#. Неспроста там решётка в названии.
        Ответить
        • ну там можно case x when false
          не так красиво, но лучше, чем ничего
          Ответить
          • Но case x when false никогда не выполнит код, стоящий за ним?

            А в топике всё выполняется и работает как goto на строку 7 в конце каждой из строчек 2-6.
            Ответить
                • Но в C# fallthrough все равно почти запрещен (что мне кажется на самом деле очень правильным, пусть лучше goto case, чем ничего)
                  Ответить
                  • Потому что он ходит читать треды только когда в них появится новый коммент.
                    Ответить
                    • Так он и старые коменты в базе обновляет? А если придет пидорас страйкер и потрет юзера - из базы его коменты тоже потрутся?
                      Ответить
                      • Потрутся. Тред полностью синхронизируется. Ибо хранение истории комментов лень было прикручивать.
                        Ответить
                        • Разреши обновление коментов только в течении 5 минут. Ну и можно бэкапы базы делать регулярно.
                          Ответить
                          • Тогда по-хорошему надо ещё контрольный заход делать через 5 минут после последнего коммента в треде.
                            Ответить
                              • > эта проверка- один if
                                Она же не будет работать в чистом виде...

                                Если ты поправишь коммент и за 5 минут больше никто ничего не напишет в этом треде - у синхронизатора не будет повода лезть в тред. И твой коммент навсегда застрянет на первой версии.
                                Ответить
                                • Она не даст несанкционированно исправить комент в базе.
                                  Ответить
                                  • Зато в половине комментов проебутся правки. Не, в чистом виде я проверку добавлять не буду.
                                    Ответить
                                      • Прочитай коммент выше и объясни что именно в нём тебе не понятно.

                                        Твоя проверка поломает синхронизацию отредактированных нормальными юзерами комментов. К ней ещё что-то надо добавлять для нормальной работы.
                                        Ответить
                                        • Тогда надо писать в базу дату последнего сканирования и если между этим сканированием и датой комментария прошло больше 5 минут то больше апдейтов не принимать.
                                          Ради стока такое делать перебор, а вот если хочешь базу создать то самое то.
                                          Ответить
                                          • Да, так будет работать.

                                            Но для полноты надо планировать ещё один скан через 5 минут если на прошлом нашлись свежие комменты, которые ещё могут исправить. Иначе последние комменты в тредах не заморозятся.

                                            Вроде дата апдейта у меня в табличке уже есть. Просто на сканер нет юнит-тестов и боязно его править.
                                            Ответить
                                            • На что тебе там юнит тесты нужны? На парсер?

                                              Неужели мне придется гитхаб осваивать? 🙁

                                              Тебе и не обязательно проводить специальный скан чтобы их заморозить. Обычно достаточно случайного скана.
                                              Ответить
                                            • можно пересканировать через x времени если тред не был сканирован после появления последних коментов. Через час. Или через сутки. Ну это если сканы экономить.
                                              Ответить
            • >Скучный язык этот ваш C#
              >А в топике всё выполняется и работает как goto на строку 7 в конце каждой из строчек 2-6.

              BLOCK: {
                  doShit1(); break BLOCK;
                  doShit2(); break BLOCK;
                  doShit3(); break BLOCK;
                  doShit4(); break BLOCK;
              }
              out.print("/n")

              Если в безgotoшной яве так можно, поцчему в шарпе низя?
              Ответить
                • Чот не понял в чем разница между бряк и бряк блок.
                  Ответить
                  • бряк брякает только текущий блок. В указанном коде это блок свича, потом выполняется print.

                    бряк блок (labeled break) брякает текущий, блок содержащий текущий и так далее, пока не блякнет блок помеченый соответссвующим идентификатором. В данном коде он брякает два блока: свич и блок содержащий принт.
                    Ответить

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

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

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


    8