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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    function foo(arg: any) {
        if (typeof arg === "string") {
            // We know this is a string now.
            print(arg);
        }
    }
    
    function main() {
        foo("Hello");
        foo(1);    
    
        print("done.");
    }

    наговнокодил

    Запостил: ASD_77, 13 Августа 2021

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

    • вроде работает. dump https://pastebin.com/w6hZKPdz
      Ответить
    • и результат работы

      C:\temp>C:\dev\TypeScriptCompiler\__build\tsc\bin\tsc.exe --emit=jit C:\temp\1.ts 
      Hello
      done.
      Ответить
    • теперь буду делать для "instanceof" тоже самое
      Ответить
    • тут кто нить есть :)?
      Ответить
      • Точно, я же хотел сюда написать, что в «Nim» такое есть: is для статической проверки и of для динамической.
        Ответить
      • *комментарий для продвижения канала*
        Ответить
    • Ты ж говорил any у тебя не будет
      Ответить
      • ну это не то что ты думаешь - он сам пришел :) (это не тот any который имеет reflection — это примитивный боксинг)
        Ответить
        • Что такое боксинг? Это когда по тыкве дают и получают?
          Ответить
          • Это анбоксинг вроде
            Ответить
            • Типа как будто в «С++» шаблоёбло раскрывается?
              Ответить
              • В С++ нет анбоксинга.

                Боксинг это волшебное превращение примтива/value тайпа в ссылочный тип.
                А анбоксинг наоборот.

                Жава
                List<Integer> a = new ArrayList<>();
                int b = 12;
                a.add(b); //произошел боксинг
                Ответить
                • Анбоксинг это когда товар с алиекспресса распаковывают
                  Ответить
                • Точно! Совсем забыл про такое, ведь я не пишу на всякой ненужной анскильной хуйне (вроде «Java»).
                  Ответить
    • > // We know this is a string now.
      А тайпчекер знает?
      Ответить
      • Да, в том и фишка. В прошлом ГК приходилось явно кастовать, а тут уже норм.
        Ответить
    • > наговнокодил

      наговнокодил, наговнокожу и буду наговнокодить
      Ответить
      • чем наговнокожу отличается от буду наговнокодить?
        Ответить
        • Наговгокожу – один раз буду говнокодить.

          Буду говнокодить – много раз наговнокожу.
          Ответить
        • https://youtu.be/NeDJI_IRwFE
          Ответить
    • Кстати, а как эта фича в плане многопоточности?

      Что будет, если эта питуля ПОСЛЕ проверки на строку и ДО передачи в функцию из другого треда, например, сменит тип???
      Ответить
      • > треды
        > йажасцрипт
        Ответить
        • Там нет тредов?? Какой pozor )))
          Ответить
          • А зачем треды?

            То ещё удовольствие, когда твой код ломает другой твой код посередине.
            И поэтому я за жс, где отрывки асинхронного кода выполняются вежливо друг за другом.
            Ответить
        • А Workers и hardwareCocknurency чем тебе не триады?
          Ответить
          • Да это скорее процессы чем треды...
            Ответить
            • Это же скриптуха, где твоё чувство абсрактного?

              Интересно, на GPU можно воркеров посадить?
              Ответить
              • Зачем? Зачем?
                Ответить
                • У жeны oкaзaлся любoвник, и я уeхaл, брoсив всё, в дaльнee Пoдмoскoвьe, гдe у мeня былa oднoкoмнaтнaя квaртирa
                  Ответить
          • Это же изолированная питушня. У тредопердоликов ощущения не те.
            Тред - это когда в любой момент любой кусок кода может тебе всё сломать посередине присваивания какой-нибудь простой переменной.
            Ответить

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