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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    int aBookItemKeysCount = 0;
    foreach (var some in aBookItemKeys)
    {
        aBookItemKeysCount++;
    }

    aBookItemKeys это массив.

    Запостил: Ramirag, 08 Ноября 2017

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

    • То-есть у человека даже мысля не закралась что надо в MSDN поискать метод у массива типа Size или Length?
      Ответить
      • а вот и не угадал
        https://msdn.microsoft.com/en-us/library/bb357392(v=vs.110).aspx
        Ответить
        • # msdn.microsoft.com/en-us/library/bb357392(v=vs.110).aspx

          Есть ещё и Array.Length и Array.LongLength
          Ответить
        • size, length, Length, LongLength, len, #, Count, ...
          Кто придумает более оригинальное название в своём языке с нескучными идентификаторами?
          Ответить
          • cardinality
            Ответить
          • А в руби есть size, length и count. Все три делают одно и тоже для array, выбирай какой больше нравится.

            Я не читал мсдн, но вангую что LongLength и Length отличаются тем что один 4 байта, а другой 8
            Ответить
            • ДлиннаяДлина длиннее чем просто Длина
              Ответить
            • Как думаете, это признак неточности, расхлябанности, беспорядочности в мире программирования, или же наоборот - надвигающееся будущее, когда к синонимам добавится прощение опечаток (soze, lnGth) и после того - выражение мыслей на естественном языке?
              Ответить
              • Признак несовершенства и небольшой ебанутости в мире. Необходимость использовать 2 разных свойства, возвращающих значения 2 разных типов, для определения длины массива это не нормально. Да, необходимость использовать LongLength будет очень маловероятна, но сама возможность ее появления говорит нам, о том, как несовершенен мир программирования и языков со статической типизацией.
                К выражению мыслей на естественном языке и надвигающемуся будущему, это увы нас нисколько не приближает. Для этого будет необходимо решить задачу вида - я хочу получить длину массива и что-нибудь с ней сделать. Я не хочу знать о типе элементов массива, не хочу знать о типе переменной в которую пойдет значение числа элементов массива, не особо хочу знать о возможных ошибках в ходе моих действий. Про ошибки я в идеале хочу знать, то, что они были и каким то образом сами были исправлены. Вот это значительно нас приблизит к выражению мыслей на естественном языке. К этому, кстати говоря, чуть ближе находятся языки с динамичесокой типизацией. Они же, между тем возможно пытаются сформировать некий новый тип, который соберет в себе лучшие черты от статической и динамической типизации (typescript и javascript, pep 484 и pep 526 в питоне)
                Ответить
                • Не используй ЯПы со стат типизацией. В рубях вообще FixNum сам превращается в BigNum когда нужно.
                  irb(main):001:0> 200.class
                  => Fixnum
                  irb(main):002:0> (200 * 10000000000000000).class
                  => Bignum


                  Да и в питоне
                  >>> type(200)
                  <type 'int'>
                  >>> type(200 * 30000000000000)
                  <type 'long'>
                  Ответить
                  • > В рубях вообще FixNum сам превращается в BigNum когда нужно.

                    Всё это уже было 30 лет назад в Common Lisp, только лучше (деление, например, может возвращать рациональные числа). Даже новомодный gradual typing там уже был, только лучше. И рантайм у практически всех реализаций многопоточный уже десятилетие. И даже убогое ООП там гораздо полезнее, ибо мультиметоды. Жаль только, что стандартная либа и система пакетов выглядят не особо современно.

                    С технологической точки зрения эти ваши скриптоязычки убоги, а хвастанье длиной фич и числом способов сделать одно и тоже может вызывает только смех.
                    Ответить
                    • >>Всё это уже было 30 лет назад в Common Lisp,
                      Ну и что? Вывод типов тоже был в функциональных языках уже очень давно, а джава до сих пор не может.

                      >>С технологической точки зрения эти ваши скриптоязычки убоги,
                      Ну так товарищ возмутился тому, что в .NET есть Length и LongLength, я и предложил выход: отказ от стат типизации.

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

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

                      > И даже убогое ООП там гораздо полезнее, ибо мультиметоды.
                      А можно пояснений, почему мультиметоды лиспа, лучше чем какая либо их реализация в других языках?
                      Ответить
                      • В высокоуровневых ЯП со стат типизацией нужно указывать не что и как будет храниться в памяти, а какие есть сущности или АДТ. Это позволяет проводить статический анализ кода, а это в свою очередь дает код-комплишен, файнд-юзадж, рефактор (мув, ренейм) итд. А кроме того валидирует код не только в рантайме
                        Ответить
                  • Я и не использую. Питон, с недавних пор - яваскрипт.
                    Ответить
            • int QList::length() const
              This function is identical to count().
              Ответить

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