1. Lua / Говнокод #25014

    0

    1. 1
    2. 2
    _G = setmetatable(_G, {__newindex = function(t,k,v) t[k] = "sG_nil" end})
    pitux=1

    чо поцоны, изи рекурсия.

    Запостил: 3oJIoTou_xyu, 24 Октября 2018

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

    • Переведи на "PHP".
      Ответить
      • а давай ты переведешь.
        Ответить
      • Не благодари
        <?php
        $handle = popen('/usr/bin/env lua', 'w');
        fwrite($handle, <<<LUA
        _G = setmetatable(_G, {__newindex = function(t,k,v) t[k] = "sG_nil" end})
        pitux=1
        LUA
        );
        pclose($handle);
        Ответить
        • >>>"popen"

          А "gagen" есть?
          Ответить
        • Можно ещё так (если установлено расширение php_lua):
          <?php
          $luaobj = new Lua();
          $luaobj->eval(<<<LUA
          _G = setmetatable(_G, {__newindex = function(t,k,v) t[k] = "sG_nil" end})
          pitux=1
          LUA
          );
          Ответить
          • Забавно, что в РНР назвать метод eval можно только через сишное апи. Именно поэтому я за РНР.
            Ответить
            • Я eval такой API.

              Можно через «перегрузку»:
              <?php
              
              class nemyx {
                  public static function __callStatic($name, $arguments) {
                      if ($name === 'eval') {
                          return array_reduce($arguments, function($carry, $item) {return $carry * $item;}, 1);
                      } else {
                          die("Метод $name не найден.");
                      }
                  }
              
                  private $data = array();
              
                  function __construct() {
                      $this->data = func_get_args();
                  }
              
                  public function __call($name, $arguments) {
                      if ($name === 'eval') {
                          if(count($arguments) > 0) {
                              die("Аргументы не требуются.");
                          }
                          return array_reduce($this->data, function($carry, $item) {return $carry * $item;}, 1);
                      } else {
                          die("Метод $name не найден.");
                      }
                  }
              
              }
              
              echo nemyx::{'eval'}(1, 2, 3, 4, 5) . PHP_EOL; // если написать nemyx::eval, то будет синт. ошибка
              
              $kokoko = new nemyx(1, 2, 3, 4, 5);
              
              echo $kokoko->eval() . PHP_EOL;


              http://ideone.com/5SJWEh
              Ответить
              • Вообще прикольно, что нужно писать nemyx::{'имя_метода'} вместо nemyx::имя_метода, если имя_метода совпало с чем-то зарезервированным.

                А ещё прикольно, что по сути получилось ООП, как в Smalltalk/Obj-C: у нас единый диспетчер (__call для вызова из экземпляра объекта и __callStatic для вызова без $this) обрабатывает произвольные сообщения (в данном случае имя метода 'eval' — это по сути сообщение).
                Ответить
        • Переведи на "Lua".
          Ответить
    • Это что, типа перегрузки оператора "="? При вызове присваивания вызывается new_index, который, в свою очередь, вызывает присваивание...
      Ответить
      • ноуп. local x=1 или math="pitux" отработает нормально.
        Эта мета вызывается когда новый элемент в таблице пытается появится
        _G эта таблица глобальных переменных.
        То есть любая глобальная переменная = элементу таблицы _G
        следовательно создавая новую глобальную переменую он создает новый элемент в _G и вызывает метаметод __newindex который в свою очередь присваивает _G["pitux"]="sG_nil" снова, и опять вызывется этот метаметод а потом снова и снова.
        Ответить
        • Интересно, таблица _G названа в честь точки G?
          Ответить
    • Поэтому я против "Lua".
      Ответить
    • луа гавно
      Ответить
      • слыш блять, не говно
        lua это audioserf, gta sa и много чего ещё
        вообще не пизди на lua, норм язык
        Ответить
        • Более 80% сайтов в мире использует PHP. Следовательно, РНР не говно.
          Ответить
          • Именно поэтому
            Ответить
          • пхп, разумеется, говно

            потому что сравнивать сайт и GTA это примерно как сравнивать спичечный коробок и Феррари
            Ответить
            • Говорят, был такой случай: мужик в пустой спичечный коробок положил кал, который собирался отнести в поликлинику для анализа, сунул в карман и забыл. На улице у него спросили, не найдётся ли огонька...
              Ответить
              • Пошёл я вчера утром в поликлинику сдавать говно
                Зима, темно ещё, в спичечном коробке лежит оно
                Иду как робот, дубак пиздец, не выспался совсем
                Настроение так себе — на волне своих грустных тем

                Тёлка галимо не даёт вторую неделю, кончился план
                Собака щемиться из-за угла, за ней на поводке какой-то баран
                Четыре огромных мента мнут две кавказские ксивы напротив обмена валюты
                Рядом жёсткий синий махыч — день по всем приметам начинается лютый

                Хуякс! Вижу дорогу переходит Димон — нормальный чел с местности
                Димон меня сыто индусиком раскурил и резво скрылся в окрестностях
                Меня вставило не по детски и я отправился с говном идти дальше
                Иду себе вспоминаю пиздатое из того что случалось по жизни раньше:

                Вспомнил первый прыжок с парашютом, недавний оттяг в Египте
                Вспомнил, как кончал Катюхе в варежку, её сладкую жопу в лифте
                Вспомнил, как бывало заебись когда зюзе бывало немеренно
                И про то что я многое в жизни делал вполне уверенно

                Дошёл до поликлиники, отстоял в очереди, сдал кал
                Вернулся домой, чай с сахаром, два бутера, поссал
                И всё вроде ничего, но надо бы вырубить ганджубасика
                Без ганджубасика пускай живут в пруду тупые карасики

                Осуществил несколько звонков, грамотно разрулил ситуацию
                Через час всё должно приехать спасибо моей репутации
                Привезли убийственный гидропон, у меня осело грамм десять
                Сижу надуваюсь, ебошит злой рэп, меня больше совсем ничего не бесит


                Какой же я молодец,что никогда никого не слушался
                А то был бы сейчас:

                Нервным программистом
                Ушлым комивоежёром
                Цепким менджером

                Скучным веб дизайнером
                Крупным акционером
                Мелким лавочником

                Трепетным сектантом
                Глупым политтехнологом
                Продвинутым рекламщиком

                Продажным журналистом
                Весёлым интерьерщиком
                Лучшим инструктором

                Средненьким телевизионщиком
                Нормальным методистом
                Плохим агентом
                Ответить
                • Хорошим диллером
                  Глубинным психологом
                  Дорогим диетологом

                  Взвешенным социологом
                  Доёбистым юристом
                  Вязким переговорщиком

                  Криминальным нотариусом
                  Отвязным консультантом
                  Резвым синхронистом

                  Мудрым советником
                  Мелированым модельером
                  Цепким банкиром

                  Продуманным антикварщиком
                  Неприметным брокером
                  Гламурным фото-редактором

                  Негодяем промоутером
                  Лужковским Архитектором
                  Извращённым преподавателем

                  Садистом-стоматологом
                  Умелым управляющим
                  Успешным издателем
                  Ответить
                  • Исполнительным продюсером
                    Коррумпированым чиновником
                    Тихим трэйдером

                    Истеричным стилистом
                    Генеральным директором
                    Основным инвестором

                    Улыбчивым ресторатором
                    Системным аналитиком
                    Теневым бухгалтером
                    Ответить
                    • Ненавижу рэп. Его исполняют тупые обезьяны.
                      Ответить
                      • зато про говно
                        Ответить
                      • Хм, а ведь не соврал дедушка-Дарвин сказав, что люди произошли от обезьян. Только умолчал, что степень абстракции у всех разная...

                        КАКОЙ ФУЛЬГОР )))
                        Ответить
          • Более 80% живых существ в мире едят говно (потому что мухи). Следовательно, говно не говно
            Ответить
        • Луна гоано
          Ответить
        • Луа - язык для непрограммистов?
          Ответить
          • Язык для сталкеров.

            function enemies_dialog_rep(actor, npc)
            local com = npc:character_community()
                 if com == "stalker" then
            	db.actor:set_character_rank(db.actor:character_rank() + 4)
                elseif com == "military" or com == "killer" or com == "bandit" or com =="dolg" or com == "freedom" then
            	npc:set_character_community("stalker", 0, 0)
            	db.actor:set_character_rank(db.actor:character_rank() + 3)
            	npc_save = npc
            	start_timer()
                --elseif npc:character_community() == "ecolog" then
            	--db.actor:set_character_rank(db.actor:character_rank() + 5)
                -- elseif npc:character_community() == "dolg" then
            	--db.actor:set_character_rank(db.actor:character_rank() + 4)
                -- elseif npc:character_community() == "freedom" then
            	--db.actor:set_character_rank(db.actor:character_rank() + 4)
                 else
            	npc:set_character_community("stalker", 0, 0)
            	db.actor:set_character_rank(db.actor:character_rank() + 3)
            end
                 if second_speaker ~= nil then
            	--if com == "stalker" or com == "ecolog" or com == "dolg" or com == "freedom" then
            	second_speaker:set_relation(game_object.friend, first_speaker)
            	--end
                 end
            end
            Ответить
          • Подтверждаю. Уже много раз встречаю луа в совсем неуместных прогах вместо скриптового языка. Верните VBScript!
            Ответить
      • сам ты говно

        луа няшечка
        Ответить

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