1. C# / Говнокод #18357

    +145

    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
    14. 14
    public string define(string content)
        {
                    int till;
                    char[] CharArr = content.ToCharArray();
                    for (int i = 0; i < CharArr.Length; i++)
                    {
                        if (CharArr[i] == 'i')
                        {
                            till = i;
                        }
                    }
                    string Re = content.Substring(0,till);
                    return Re;
                }

    С тостера. Я рыдал.

    Запостил: planaric, 18 Июня 2015

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

    • Парсер JSON, например, бы на таком соорудить – и было бы вообще идеально.
      Ответить
      • используя только конструкции if и for, никаких там функций, и желательно без массивов
        Ответить
    • Вижу использование неинициализированной переменной.
      Ответить
      • В нормальных языках они по дефолту 0
        Ответить
        • например в каких?
          Семён, перелогиньтесь
          Ответить
          • Во всех, кроме низкоуровневого скама.
            Ответить
            • Ок, жава и скала - низкоуровневый скам.
              Ответить
              • Што? В жаве же тоже по дефолту 0, тебе не стыдно?
                Ответить
                • Локальные переменные то? Тебе самому не стыдно, guest?

                  https://ideone.com/3eXiXG
                  Ответить
                  • В шарпе просто посылает найух

                    https://ideone.com/LsZpBh

                    А как дела с int[]?
                    Ответить
                    • int[] -- декларация переменной
                      new int[42] -- дефенишен, создаюший в память массив из 42х элементов.

                      чем int[] отличается от MySuperClass?

                      new int[] = new MySuperClass()
                      Ответить
                      • Но new int[] автоматически заполяет их нулями.
                        Ответить
                    • То есть сабж не должен компилироваться?
                      Ответить
                  • в жабе и шарпах неинициализированные переменные просто не скомпилируются, так что Тарас конечно в лужу сел. Но Гость сел туда же потому как автоматически инициализируются там следующие переменные:
                    1) примитивы (в ноль и false)
                    2) филды объектов (в нул)

                    Таким образом становится понятно что неинициализированная переменная бывает только в одном случае: когда это автоматическая переменная, указывающая на объект (иными словами когда на стеке создается указатель на какой-то объект в куче). Его-то и надо инициализировать.

                    Кстати, о "низкоуровневом скаме": в OBJC при использовании ARC _все_ указатели указывают на nil, если не инициализированы. Так что данглинг поинтеры "указывающие вникуда" там не бывают.
                    Ответить
                    • блять, идиотина, где он в лужу сел?
                      ты написал горы текста хуйни, а он всего одно предложение.
                      Ответить
                    • блять, идиотина, где я в лужу сел?
                      Ответить
                    • Сколько же нелепой хуйни ты написал
                      Ответить
                • http://ideone.com/ZkTIiw
                  Ответить
                  • И где тут неинициализированная переменная, guest?
                    Ответить
                    • В куче мусора?
                      Ответить
                      • В хуюче

                        "new int[4]" создает массив о четырех элементах в куче и кладет туда нули.
                        Так что всё там прекрасно инициализировано.

                        [code]
                        for (int i : new int[255]) {
                        System.out.println(i); // ОЧЕ много нолей
                        }
                        [code]

                        В языках с автоматическим управлением памятью не бывает данглинг поинтеров
                        Ответить
                        • Гость, хватить нести херню.
                          Тарас говорил про переменную till, которая живёт на стеке.
                          Ответить
                          • ты плохо умеешь читать?

                            я отвечал предыдущему оратору, который говорил про int[].
                            а тарасовый высер я прокомментировал выше: int это примтив, его не надо инициализировать, он автоматически инициализируется нолем.

                            если бы это было не так, то код бы не скомпилировался

                            пожалуйста, не нужно рассуждать о том, в чем ты не силен. Ты выглядишь глупо.

                            Неинициализированные инты у них в C#, бля.
                            Ответить
                            • > если бы это было не так, то код бы не скомпилировался
                              А ты думаешь он компелируется?

                              > int это примтив, его не надо инициализировать, он автоматически инициализируется нолем.
                              В твоих влажных фантазиях. Из языков, что я знаю, только D так делает.
                              Ответить
                              • >> Из языков, что я знаю, только D так делает.
                                Не много ты, видать, языков знаешь.
                                Так делает:
                                1) сишечка и её детки (кресты, обжс итд)
                                2) практически все скриптовые языки
                                Ответить
                                • дурак, в сях так только static и global работают. Остальные будут не инициализированы.

                                  А вот в скриптовых ты прав: инициализируется. Но роман скриптовых не знает
                                  Ответить
                                  • > Но роман скриптовых не знает
                                    Знаю, и потому люто их ненавижу.
                                    Ответить
                                    • Ты все пишешь на жавке с энтерпрайзом?
                                      Ответить
                                      • > Ты все пишешь на жавке с энтерпрайзом?
                                        В нашей уютной компании пишут в основном на C++ и пистоне. На жавке и скалке изредка, бэкэнд-сервисы.
                                        Ответить
                                        • А что, тебя уже из яндекса выгнали? Там же вполне себе джава цветет и пахнет
                                          Ответить
                                          • > Там же вполне себе джава цветет и пахнет
                                            Где твоя логика, гест?
                                            "в основном пишут на C++" означает "не используют жаву"?
                                            "используют жаву" означает "на ней пишет каждый"?
                                            Ответить
                                            • Гость - это создание, которое в силу недостаточности интеллекта не смогло создать аккаунт.
                                              Зачем ты с ним споришь?
                                              Ответить
                                • В каких скриптовых языках есть объявление без инициализации? И, кстати, что такое "скриптовый язык" сегодня?
                                  Ответить
                                  • Например в JS

                                    var a; /*Тут переменная инициализирована undefined */
                                    alert(a);

                                    "скриптовые языки" неформальное название языков без статической типизации, для которых основными реализациями являются интерпретаторы.

                                    Ну вот JS хороший пример. Хотя практически ни в каком из этих языков нет декларации переменной отдельно от дефинишена (в пайтоне например это вообще не возможно впринципе). JS исключение.
                                    Ответить
                                    • А где ты видел интерпретаторы? Фитон вполне себе компилируется в байткод. repl есть и для скалы.

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

                                        В этом смысле пистончик инетпретируемый. Хотя ты конечно прав: ".pyc" файлы никто не отменял
                                        Ответить
                                      • Не только для GC. Это (частично) верно еще и для ARC.
                                        Так, ARC гарантирует что все указатели на объекты указывают либо на валидный объект в памяти, либо на nil.
                                        Ответить
                                        • что такое arc?
                                          Ответить
                                          • https://en.wikipedia.org/wiki/Automatic_Reference_Counting
                                            Ответить
                                            • Подсчет ссылок по-русски?
                                              Ответить
                                              • Автоматический, да.

                                                поскольку objc это надстройка над сишечкой, то когда ты делаешь так

                                                GKGovno *govno;

                                                ты просто создаешь на стеке указатель на GKGovno и ничем его не заполняешь, и получаешь висячий указатель.

                                                Но если у тебя в шланге включен ARC, то эта штука начнет явно указывать на nil (алиас для NULL).
                                                Ответить
                                            • А счетчик ссылок (который в питоне, например) это разве не тип сборщика мусора?
                                              Ответить
                                          • Time to face the music armed with this great inmorfation.
                                            Ответить
                                          • Whoever wrote this, you know how to make a good <a href="http://nkezyyxkwz.com">arictle.</a>
                                            Ответить
                                          • Wow! Great to find a post with such a clear mesesga! http://iymwpaqvrib.com [url=http://cdfxvyp.com]cdfxvyp[/url] [link=http://lamtfdbmrjl.com]lamtfdbmrjl[/link]
                                            Ответить
                                • > Не много ты, видать, языков знаешь.
                                  Много, видать, языков ты думаешь, что знаешь.

                                  > сишечка и её детки
                                  При размещении на стеке - ни си, ни плюсы не проинициализируют int. Кресты инициализируют объекты с дефолтными конструкторами, но речь-то о примитивах.

                                  > практически все скриптовые языки
                                  Я имел в виду языки с нормальной явной типизацией.

                                  > только D так делает.
                                  ещё Go
                                  Ответить
                                  • >> Я имел в виду языки с *нормальной*
                                    Люблю формальную, научную терминологию.

                                    Статическая типизация более нормальная, чем динамическая.
                                    Ответить
                                    • > формальную, научную терминологию.
                                      > Статическая типизация более нормальная, чем динамическая.
                                      Статическая и динамическая - это не формальная и уж тем более не научная терминология. Чувствую, скоро придёт @wvxvw и начнутся стены текста.
                                      Ответить
                                      • Статическая типизация вполне себе формальна: это возможность определить тип переменной статически, то есть анализируя код программы, не запуская её.

                                        Уныле высеры wvxvw про то что "статической типизации не существует" мы уже читали. wvxvw взял конкретный кейс, к которому это понятие не применимо и сделал вывод что этого понятия не существует.

                                        Ему уже объясняли тут, что в таком случае даже понятия "север" не существует, потому как на полюсе севера нет.

                                        Ну и уж конечно особенно забавно, что автор выражения "нормальная типизация" рассказывает мне про терминологию.
                                        Ответить
                                        • > Статическая типизация вполне себе формальна: это возможность определить тип переменной статически, то есть анализируя код программы, не запуская её.

                                          Если я смогу определить тип переменной в питоне, не запуская интерпретатор пистона, в пистоне будет статическая типизация?
                                          Если я в жавке написал фабрику, которая возвращает объект, точный тип которого неизвестен, стала ли жавка динамической?
                                          Ответить
                                          • 1) ты не можешь определить тип переменной *для каждого случая* в пистоне

                                            2) ты видимо совсем не знаешь джавы. В джаве ты должен явно указать тип любой переменной (будь то указатель на объект или нет), и в случае фабрики ты должен явно указать тип возвращаемого ей значения. Разумеется, ты можешь вернуть подтип, однако же если результат вызова фабрики ты присваиваешь переменной, то тип этой переменной также должен быть определен.

                                            Итого: в джаве для любой переменной (и любого выражения) всегда явно указан тип (ну или его можно вывести) без запуска программы.

                                            В пайтоне, в общем случае, это не так.
                                            Ответить
                                          • В жавке у функций есть четкий тип возврата, в питоне ты его в общем случае определить не можешь (а если там json с диска читается?).
                                            Ответить
                                            • > в питоне ты его в общем случае определить не можешь (а если там json с диска читается?).

                                              Т.е. в жавке нельзя читать json с диска? А ObjectStream не сможет превращать байты в объекты с очень точным типом Object?
                                              Ответить
                                              • Рома, какая же тупая макака. В джаве ты всегда указываешь тип переменной явно, и поменять тип она не может. Объект это тоже тип. А в пайтоне ты тип не указываешь, и он может меняться в рантайме, и потому мы говорим что джава типизирована статически потому как тип всегда можно узнать статическим анализом, а в пайтоне всегда можно узнать только во время исполнения. Пздц. Ты точно программист?
                                                Ответить
                                                • Что это у вас тут за троллинг переменной толщины?

                                                  Статическая типизация - проводится проверка типов во время компиляции и говориться валиден ли код

                                                  SomeFunc(); \\ничего не выполнится
                                                  SomeType.UncorrectFunc(); \\Тут несоответствие типов


                                                  Динамическая - код выполняется в любом случае, если будет найдено несоответствие типов - будет брошено исключение

                                                  SomeFunc(); \\Выполнится
                                                  SomeType.UncorrectFunc(); \\Тут несоответствие типов
                                                  Ответить
                                                  • > Динамическая - код выполняется в любом случае, если будет найдено несоответствие типов - будет брошено исключение

                                                    Кегги, помоги, я запутался
                                                    ((CorrectType)new Object()).CorrectFunc();
                                                    Конпелируется в жабе, но бросает исключение :(
                                                    Ответить
                                                  • А если без зелени, то всякие жабы проверяют типы и на этапе компиляции, и во время выполнения через RTTI из-за возможных дыр в системе типов и динамической природы некоторых задач (вроде десериализации потока).

                                                    Если язык имеет и статическую, и динамическую проверку типов, то относить его к какой-то одной категории, кмк, неправильно.

                                                    Разве что судить по принципу "всё, что не может в статику - динамическое, всё, что может - статическое", но это как-то странно.

                                                    P.S. Если написать компилятор пистона с невпупенным flow-analyzer-ом, который выводит типы сквозь границы модулей и реджектит код без нужных проверок, станет ли пистон статическим? Кстати, я слышал о подобных идеях в контексте построения IDE для жабоскриптов.
                                                    Ответить
                                                    • Так оно и есть - есть статика - статика. Нет статики - динамика. Не в курсе - в жабе есть динамический тип данных как в дотнетике?
                                                      Ответить
                                                      • > в жабе есть динамический тип данных как в дотнетике?

                                                        В жабе есть на уровне JVM (инструкция invokedynamic) для ускорения скриптовых языков, но нет на уровне языка Java.

                                                        В скалке есть сахарок для dynamic
                                                        http://www.scala-lang.org/api/current/index.html#scala.Dynamic
                                                        Ответить
                                                    • >P.S. Если написать компилятор пистона с невпупенным flow-analyzer-ом, который выводит типы сквозь границы модулей и реджектит код без нужных проверок, станет ли пистон статическим?
                                                      Такие попытки есть (pycharm), но, во-первых, оно жутко тормозное даже на фоне свежих мелкомягких ide (а жабоебские иде как ни странно вообще отдыхают), во-вторых, оно бессильно если данные приходят извне.
                                                      Ответить
                                                      • такой анализатор написать не реально. PyCharm делает всё возможное, но всё равно можно написать

                                                        spam = 'eggs' if user == '3_14dar' else 42

                                                        ну и какой тут тип?
                                                        В джаве так нельзя.
                                                        Ответить
                                                        • > ну и какой тут тип?
                                                          Эффективно можно считать, что в питоне у всех объектов есть общая база, вроде жабьего Object - PyObject. Вот такого статического типа и будет spam. Динамический тип будет либо строка, либо число.

                                                          > В джаве так нельзя.
                                                          System.out.println((Long)("3_14dar".equals(user) ? 40 : "Ouch") + 2);

                                                          ok. Чего ещё нельзя в джаве?
                                                          Ответить
                                                          • >Эффективно можно считать, что в питоне у всех объектов есть общая база, вроде жабьего Object - PyObject. Вот такого статического типа и будет spam.

                                                            Как-то летели Холмс с Ватсоном на воздушном шаре. И заснули.
                                                            Просыпаются над какой-то незнакомой местностью, видят - внизу какой-то
                                                            мужик коров пасет. Снизились они и спрашивают мужика:
                                                            - Скажите, сэр, где мы находимся?
                                                            (долго думал)- На воздушном шаре.
                                                            - Спасибо, сэр! - и поднялись вверх. Холмс задумчиво говорит:
                                                            - Интересная местность, Ватсон! Программист пасет коров!
                                                            - Но, Холмс, с чего вы взяли, что он программист?
                                                            - Это элементарно! Во-первых, он долго думал над ответом. Во-вторых, его
                                                            ответ был абсолютно точен. И самое главное - абсолютно бесполезен!
                                                            Ответить
                                                            • Ты как всегда вовремя! Правда опоздал лет на пять
                                                              Ответить
                                                          • Можно, если функции принимают Object, чего они обычно не делают. http://govnokod.ru/18357#comment290440
                                                            Ответить
                                                      • Сёма, иди напитон, 3_14dar!
                                                        Ответить
                                                        • Бот, не заебало капчу вводить? Помни про симметричный ответ!
                                                          Ответить
                                              • В жавке тоже можно дать всему тип Object и получить типа динамическую типизацию, но так обычно не делают.
                                                Ответить
                                                • бамп старому говнотре..

                                                  Сёма, в джаве и так есть динамическая типизация

                                                  Dynamic type checking is the process of verifying the type safety of a program at runtime. Implementations of dynamically type-checked languages generally associate each runtime object with a "type tag" (i.e. a reference to a type) containing its type information
                                                  Ответить
                                      • >Чувствую, скоро придёт @wvxvw и начнутся стены текста.
                                        Только не это. Нееет! Лучше уж политсрач или гоатсе.
                                        Ответить
                                • Дебилок, локальные переменные не зануляет ни сишечка, ни паскаль, ни прочие подобные языки. Да и для глобальных переменных у сишки вроде только недавно договорились занулять по умолчанию.
                                  Ответить
                                  • Как тут уже было сказано зануляет Objc/swift при ARC, а roman еще указал на подобное поведение в Go и D.

                                    А все остальные языки или кладут туда мусор, или вовсе не компилируются (обычно не компилируются ЯПы с автоматическим управлением памяти)
                                    Ответить
                                    • Это тоже самое что сказал Тарас. А ты до него добрался, бабуин тупожопый
                                      Ответить
                                  • With the bases loaded you struck us out with that anwser!
                                    Ответить
                                  • Was totally stuck until I read this, now back up and <a href="http://gwfkgmpp.com">rungnni.</a>
                                    Ответить
                                  • You get a lot of respect from me for writing these helpful arctelis. http://ewazqbolcf.com [url=http://fvdoaedlqt.com]fvdoaedlqt[/url] [link=http://blspkasbp.com]blspkasbp[/link]
                                    Ответить
                            • An inlnetiglet answer - no BS - which makes a pleasant change
                              Ответить
                            • It's <a href="http://vmsdzel.com">woerndful</a> to have you on our side, haha!
                              Ответить
                            • Grazi for mainkg it nice and EZ. http://kabvvmdsqg.com [url=http://mqeawaalm.com]mqeawaalm[/url] [link=http://edkvhmh.com]edkvhmh[/link]
                              Ответить
                            • Big help, big help. And sulvrpatiee news of course. http://zfdwdn.com [url=http://yppzyqphcwk.com]yppzyqphcwk[/url] [link=http://lqhdzrze.com]lqhdzrze[/link]
                              Ответить
                    • new int[4]
                      Ответить
                      • Это переменная?
                        Ответить
                        • это стейтмент.. или экспрешен..
                          Ответить
                        • Это инициализация, но без указания значения.
                          Ответить
                          • инициализация кого? какого значения?
                            Ответить
                            • int[] arr = new int[4]
                              это инициализация переменной массивом без указания содержимого.
                              Ответить
                              • правильно, и содержимое тогда будет заполнено нолями.
                                Точно так же как если ты напишешь

                                MyArray arr = new MyArray(), то все поля класса MyArray заполнятся нулями/нулами
                                Ответить
                        • бамп старому говнотреду
                          Ответить
              • В делфи они тоже инициализируются мусором. Въебите минус предыдущему посту, это Симон лжёт.
                Ответить
    • var indexOfElement = content.IndexOf("i", StringComparison.InvariantCultureIgnoreC ase);
      content = content.Substring(0, indexOfElement);
      Ответить
    • var re = "";
      bool bFind = false;

      for(int idx = 0; idx < content.length; idx++)
      {
      if(content[idx] == 'i') {
      bFind = true;
      break;
      }
      re += content[idx];
      }

      return bFind? re : "";
      Ответить
    • бамп старому говнотреду
      Ответить

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