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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function main()
    {
        	let o = { x: 'hi', y: 17 }
    	const o2 = { ...o };
    
    	print(o2.x, o2.y);
    }

    а ты так можешь говнокодить на С/C++? дамп не дам.. (толку?)

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

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

    • а может вам дать дампику :)?
      Ответить
    • Ладно, сегодня ты победил.
      Ответить
      • А в чем проблема-то?
        #include <iostream>
        #include <cstdlib>
        
        int main()
        {
          auto o = (struct{const char *x = "hi"; int y = 17;}){};
          const auto o2 = o;
          std::cout << o2.x << " " << o2.y << std::endl;
        }
        Ответить
        • В том, что он может сказать o3 = {...o2, z: 42}.

          Хотя... можно унаследоваться от деклтайпа о2.
          Ответить
          • //
            
            #define O .x = "hi", .y = 17
            struct {char *x; int y;} o = {O};
            struct {char *x; int y; int z;} o2 = {O, .z = 42};
            //
            Ответить
            • Это О или 0?
              Ответить
              • #define 0 не роботает, я пробовал(
                Ответить
                • Какой багор )))

                  Предлагаю использовать кириллицу и латиницу. Т. е. переменные «о» и «o» в одном коде. Тогда враг не сможет украсть код, подглядев в монитор через плечо, или с распечатки.
                  Ответить
                  • Предлагаю просто программировать на whitespace.
                    Ответить
                    • Так скучно. А вот когда в сишке переменные ооо, ооo, оoо, оoo, oоо, oоo, ooо, ooo, это неплохо развивает внимание.
                      Ответить
                      • https://govnokod.ru/26680#comment549064
                        Ответить
                      • Угадай песню!

                        1. О-о
                        2. О-о-о-о
                        3. О-о-о, о-о-о. О-о-о, о-о-о.
                        4. О-о, о-о, о-оо...
                        5. О-о, о-о, о-о о-о-о-о, о-о, о-о, о-о-о-о...
                        5. О, о-о, о-о о о-о-о, о о о-о-о, о-о-о...
                        Ответить
                        • 2. Зеленоглазое такси.
                          Ответить
                        • https://s1.tchkcdn.com/g-XdhuvWpJlAl45X9xzRRwzg/9/2418/660x0/w/0/8230_2578.jpeg
                          Ответить
                          • Decision 2а-401/2021 made on 2021-03-15 by Кольский районный суд - Мурманская область.
                            This block affects IPs 104.21.15.63, 172.67.161.194, 2606:4700:3033::68, 2606:4700:3037::ac, domain s1.tchkcdn.com and URL https://s1.tchkcdn.com/g-aMBDMfvbHy_iCkamG3IVQA/14/112295/1580x976/r/0/003a_muslims.jpg

                            Decision 2а-5901/2921 made on 2021-11-10 by Череповецкий городской суд - Вологодская область.
                            This block affects IP 104.21.15.63 and domain diplomo-goznak.com

                            Decision 2-6-20/2017-02-20-38-АИ made on 2017-02-22 by ФНС.
                            This block affects IP 172.67.161.194 and domain *.vulcan-russiagaming.com
                            Ответить
                            • О! Схоронил горящий кокоран.
                              Надо будет пошарится по этим решениям, посмотреть на интересные ссылочки.
                              Ответить
                              • Фотографируйте Мурманский полуостров и получите те-ле-фун-кен.

                                Спичка в библиотеке работает. В кинохронику ходит и зажигает в кинохронике большой лист. В библиотеке маленький лист разжигает.
                                Ответить
                              • Еще насосут

                                https://i.postimg.cc/hPzwChPB/1639669576873.png
                                Ответить
                                • Всё правильно втолковал распутным девицам, которые привыкли творить разврат и прелюбодействовать.

                                  Всевышний Аллах сказал в Священном Коране: «Вы не приближайтесь к мерзостям, явными из которых является зина, и к скрытым, которыми являются страстные прикасания и поцелуи» (сура «Аль-Анам», аят 151).
                                  Ответить
                                  • >явными из которых является зина

                                    Резиновую Зину
                                    Купили в магазине


                                    Только ослик
                                    Только хардкор
                                    Ответить
                              • > О! Схоронил горящий кокоран.

                                Сохранять фоточки горящих книг — удел глупой русни.

                                Пророк сказал: «Ангелы сотворены из света, а джинны — из чистого пламени».

                                Ислам — фундаментальная и целостная религиозно-философская система.

                                А безбожные русачки и дальше будут сидеть на бутылках и платить дань правоверным народам.

                                Такова закономерная участь кафиров, поклоняющихся тагутам.
                                Ответить
                            • Правильно запретили, верующим мусульманам такая похабщина и гнусь ни к чему.

                              Подобные шайтанские похабные стишки только оскотинивают людей, и побуждают к свальному греху.
                              Ответить
                        • https://www.youtube.com/watch?v=j-DSP2hhJoA
                          Ответить
          • > Хотя... можно унаследоваться от деклтайпа о2.

            Наследование вообше говно т.к. позволяет только набросать в структуру еще какой-то хуйни (т.е. расширить), но не позволяет переставлять хуйни местами, менять им типы, удалять.
            Ограниченная хуйня для анскильных лалок.
            Ответить
            • в чем наличие скильности если не умеешь пользоваться инструментарием, например переставлять поля? какая разница, где оно стоит если адресация идет через имя поля?
              Ответить
              • Нихуя не понял что ты имел в виду. Что еще за "пользоваться инстументом", каким еще инструментом, ты о чем вообще?
                Я говорю про то, что механизм наследования - говно, т.к. он о добавлении новых сущностей в структуры, а не о произвольном конструировании новой структуры на основе старой по неким правилам (т.е. наследование - ограниченная убогая хуйня), а ты про какое-то пользования какими-то иструментами
                Ответить
                • Забудь - это я не правильно прочел твое предложение
                  Ответить
                • Вообще-то в этом и есть смысл наследования.

                  Ты бы обрадовался, если бы разыменовал AbstractController, а там – php_funkcii_impl?

                  Наследование – это гарантии.
                  Ответить
                  • > Наследование – это гарантии.

                    Я сам хочу решать, нужны или не нужны мне какие-то там гарантии. Ну т.е. при наличии более общего механизма, можно было из этого более общего механизма конструирования одних структур на основе других структур сделать такой же хуйни, как в этом говнонаследовании, чтобы были такие гарантии. Но такого общего механизма в том же крестоговне тупо нет, только это сраное говнонаследование для анскильных заедушных питушков.

                    Поэтому я за гомоиконность.
                    Ответить
                    • > конструирования одних структур на основе других структур

                      Хм, написать конструктор и перечислить что из какого поля взять?
                      Ответить
                      • И как ты это сделаешь? Можно ли в крестах сделать такую метушню, которой передаешь структуру, и которая меняет первое и второе поле в этой структуре?
                        Типа
                        struct shit1
                        {
                          int a;
                          float b;
                        };
                        
                        struct shit2 
                        {
                          swap_1_2<struct shit1> // чтоб тут эта хуйня раскрылась в
                        // float b;
                        // int a;
                        };
                        Ответить
                        • А, тебе прям транс-формации... Такого (пока) нету.
                          Ответить
                          • И никогда не будет.

                            Потому что тогда будут:

                            1. Мокросы
                            2. Коньцепты
                            3. Констрэкспы
                            4. Темплейты
                            5. И вот эта питушня.


                            Хотя, может быть и сделают такую штуку, но зачем? В «Nim» всё уже давно реализовано.
                            Ответить
                        • Наследование это для тех кто застрял в 90х.

                          Хацкелисты вроде давно уже всех должны были обучить: product type, sum type, recursive type, sum of product types.

                          В принципе это ещё в 60х было понятно авторам книжек Структуры+Алгоритмы=Программы.
                          Просто этот подход формализовали .
                          Ответить
                        • Напиши в комитет, чтобы они прекратили яйца мять и занялись, наконец, компайл-тайм рефлексией. Прототипы в принципе уже есть.
                          Ответить
                          • Спасибо, это предложение добавлено в очередь на стандартизацию сразу после std::zodiac.
                            Ответить
                  • > Наследование – это гарантии.

                    Наследование – это приколоченная гвоздями крышка.

                    У меня есть некая логика в A, которую нужно расширить/изменить.

                    Я наследуюсь от A и дополняя её логикой B. Делаю наследника AB extends A.

                    Впоследствии мне также нужно применить логику из B также и к С.

                    Однако AB уже намертво привязано к A.

                    Какой выход у адептов ООП? Городить GOF-паттерны, декораторы, адаптеры. Одним словом бройлерплёт.
                    Ответить
                    • Что тебе мешает сделать наследника ВС?
                      Ответить
                    • Миксин? А вообще, если у тебя есть отдельная функциональность, которая может быть однотипно* применена к разнородным сущностям, то зачем вообще затаскивать её в эти сущности? Не проще ли выделить её в отдельный класс?

                      *однотипно, потому что сказано "нужно применить логику из B также и к С". Про изменение логики B для адаптации к C речи не было.
                      Ответить
                      • >Миксин
                        Да, изобрели вот такое, чтобы избавиться от связности, порождаемой наследованием.

                        А на самом деле:
                        Миксины — странные изрыгающие слизь монстры океана.

                        Миксина — это примитивное, практически слепое существо, которое проводит свою жизнь на дне океана, ползая и питаясь в основном мертвой или умирающей рыбой. Среди нескольких вещей, которые делают миксину уникальной, является ее строение тела. У нее есть череп, но нет челюсти и позвоночника. Миксины могут проникать в мертвых или умирающих животных через различные отверстия и даже через их кожу - используя два ряда ороговевших зубов - и пожирать их изнутри.

                        Самые отвратительные морские существа. Жуткие фото и ... Читать дальше >>>
                        Ответить
    • Как это делается в «Nim»:

      Так не делается. И правильно, потому что нехуй так делать. Вдруг в эту структуру из другого потока насрут до инициализации const питушни?

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

          Да, это так, но можно передать указатель и куда-нибудь насрать, так работают «каналы» для передачи данных из одного потока в другой.

          > Как в неё насрут, если ты никому адрес ещё не давал?

          Это так только в данном конкретном случае. В общем же случае нельзя делать такие допущения, потому что из другого потока туда могут насрать.

          Ну и тем более, let – это не константа, а иммутабельная переменная, инициализируемая в рантайме, а const – в компайлтайме, это совершенно разные концепции, которые должны быть разделены логически.
          Ответить
      • с чего это вдруг o2 невозможно определить... елементарно ватсон. я тебе дамп покажу
        Ответить
        • В общем случае невозможно.
          Ответить
          • в любом случае. "o" строго типизованная переменная.
            Ответить
            • Если у тебя о2 вычисляется в компайл-тайме, то в общем случае такое невозможно.
              Ответить
              • ты понимаешь что типы данных предопределен... если "о" имеет 3и поля то "o2" будет 3и поля - судьба o2 предопределена т.к. 100% зависит от типа данных "о". но как часто "о" меняет свой тип данных? никогда ... значит о2 тоже никогда не меняет свои типы а значит мы может подготовить структуру данных во время компиляции. Ты предполагаешь, что "о" каждую секунду может быть разной - но нет. никто не имеет право ее поменять .. иначе ты должен создать новый "о-new" ..
                Ответить
                • Нет, ты не прав, это всё не логично и так быть не должно.
                  Ответить
    • > let o
      zim a
      Ответить
    • А чего тут непереводимого?
      Ответить
    • > Ладно, сегодня ты победил
      С хуя ли?

      >В том, что он может сказать o3 = {...o2, z: 42}.
      Я в Сишке тоже так могу.

      #include <stdio.h>
      #include <string.h>
      #include <stdlib.h>
      
      typedef struct
      {
          int y;
          char* x;    
      } fuck;
      
      typedef struct
      {
          int  y;
          char* x;    
          int  z;
      } ba;
      
      int main(void) 
      {
          fuck f = {x:"Fuck", y:0xFF};
          ba gor = {z:42};
          memcpy (&gor, &f, sizeof(fuck));
          printf ("%s 0%X %d",gor.x,gor.y,gor.z);
          return 0;
      }
      Success	#stdin #stdout 0s 5468KB
      
      Fuck 0FF 42

      https://ideone.com/dHTx0q
      Ответить

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