1. JavaScript / Говнокод #27909

    0

    1. 1
    2. 2
    3. 3
    var x1: number;
    x1 = value;
    (x1) = value;

    чем одна строка отличается от другой?

    Запостил: ASD_77, 01 Января 2022

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

    • хороший программист даже в новый год правильно ответит
      Ответить
      • Ничем нахуй!!!
        Ответить
      • У меня в Си на эти говноскобочки однохуйственно, а жабаскрипт это анскильная питушня
        Ответить
        • Аналогично в «Nim», скобки можно даже не ставить для вызова функций.
          Ответить
    • int x = 42;
      int x(42);
      int x{42};
      Чем одна строка отличается от другой? Хороший программист даже в новый год правильно ответит.
      Ответить
      • В крестах они действительно отличаются.

        А чем?
        Ответить
      • copy
        direct
        direct-list
        Ответить
        • Ты, что, Гост?
          Ответить
          • Это, наверное, что-то наподобие свежей рыбы.
            Ибо, как говорят евреи, "на второй-третий день гость и рыба воняют одинаково"
            Ответить
          • Не, гост - это chayt
            Ответить
            • Почему? По моему лучше всех знают крестостандарт Полиночка и Гост...
              Ответить
        • А ну да, надо ещё int x = {42};

          50 оттенков инициализации.
          Ответить
          • Точно все способы знаешь?

            https://blog.tartanllama.xyz/initialization-is-bonkers/
            Ответить
            • Блядь, как всё сложно
              Ответить
              • Потом они спрашивают, почему я за «PHP». Да вот хотя бы поэтому.
                Ответить
            • https://twitter.com/TartanLlama

              Какой they/them )))
              Вот к чему говнокресты приводят!
              Ответить
              • Какой-то совсем страшный трап. Сразу заметно, что не от хорошей жизни.
                Ответить
                • Да, содомитские гомосексуальные оргии с употреблением наркотиков не прошли бесследно. По глазам видно, что с каждой такой кощунственной оргией у трапа терялся кусочек души...
                  Ответить
                • Это не "трап", это "небинарное"

                  https://mastodon.social/@TartanLlama
                  > I'm a non-binary C++ and weird film nerd. I'm into fermenting everything in sight and not getting enough sleep.

                  (Вряд ли C++ под Сетунь получится эффективно реализовать, учитывая двоичные говносдвиги и 8-битный байт. Крестоговно опять обосралось)
                  Ответить
                  • (Хоть кресты и разрешают вместо 8 бит на байт делать 9 бит или даже больше, ни про какие триты в крестовом стандарте ничего не описано, так что реализовать эффективный крестовый компилятор под троичные ЭВМ не представляется возможным. Это будет неэффективная говноэмуляция двоичного говна поверх тритов)
                    Ответить
                  • > I'm into fermenting everything in sight
                    Какой элегантный способ сказать «я тебя сгною»
                    Ответить
                  • > fermenting everything in sight

                    Смотрит на всех как на говно?
                    Ответить
              • А что ещё остаётся, когда осознаешь все способы инициализации?
                Ответить
                • В таких моментов не стоит ничего говорить а только бросить таинственний взгляд в мекиканской шляпи
                  Ответить
          • Всего 42 оотенка
            Ответить
          • https://twitter.com/timur_audio/status/1004017362381795329
            Ответить
      • Ничем.
        Ответить
      • В случае intа ничем практически.
        Ответить
        • Кстати в вижалси нельзя написать
          Petushok petya{.grebeshok=42}

          потому что это C99, а VC++ его не умеет. Нужно городить Пете конструктор
          Ответить
          • > а VC++ его не умеет
            Уже устаревшая информация. Раньше действительно не умел, но в новых версиях — с 2019-й, кажется — завезли вполне современный C17 (включается в настройках проекта, вкладка «C/C++» -> «Language»):
            #include <stdlib.h>
            #include <stdio.h>
            
            typedef struct {
                int foo;
                int grebeshok;
            } Petushok;
            
            int main()
            {
                Petushok petya = { .grebeshok = 42 };
                printf("%d\n", petya.grebeshok);  // 42
                return EXIT_SUCCESS;
            }
            Ответить
            • у меня 2017-й

              твой пример не честный, это сишный код. В нем всё умеется

              Покажи, как ты совместил его с C++ кодом в одном .cpp файле
              Ответить
              • А в крестах это и не должно работать. Если работает -- это отсебятина конкретного конпелятора.

                А, в с++20 завезли.
                Ответить
              • Переходи на «2022», там всё работает.

                > твой пример не честный, это сишный код. В нем всё умеется
                Так а причём тут «C99»? В «C++» designated initializers — о которых ты пишешь — завезли только в «C++20», до этого стандарта в крестах так писать было нельзя.

                Ну и да, «VS 2022» поддерживает «C++20», в нём можно спокойно писать:
                struct IFace {
                    bool cond0;
                    std::optional<bool> cond1 = std::nullopt;
                };
                
                int main()
                {
                    const IFace a{ .cond0 = false, .cond1 = true, };
                
                    std::printf("%d\n%d\n%d\n", a.cond0, !a.cond1.has_value(), static_cast<bool>(a.cond1));
                
                    return EXIT_SUCCESS;
                }
                Ответить
                • а, ок, я реально так затупил в новый год.

                  В крестах и не должно раболтать до 20
                  Ответить
    • я пришел открыть вам всем глаза: (x) возвращает ссылку на переменную :)
      // parentheses, the contained expression is reference
      (x1) = value;
      Ответить
      • lvalue разве и так не ссылка?
        Ответить
        • не знаю... это же жабаскприт - хз что у них там в реале...
          Ответить
        • Да и так должно быть... Иначе как будут работать штуки в духе a[i] = 42 или a.x = 42? Никто же не берёт их в скобочки чтобы присвоить.
          Ответить
      • > ссылку на переменную

        Блядь, что? У вас там инты мутабельные?
        Ответить
    • в плюсах decltype(x) и decltype((x)) тоже отличаются, второй вариант возвращает ссылку, получается джаваскрипт украли столь гениальную идею
      Ответить

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