Яuбy / Говнокод #9208 Ссылка на оригинал

0

  1. 1
monthes = ['Нулября', 'Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря']

Вот, оказывается, как лечится, что индексы в массиве начинаются с нуля, а номера месяца с 1

Запостил: solenko solenko, (Updated )

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

  • Что-то нулябри стали часто проскакивать, буквально несколько дней назад было подобное
    Ответить
    • так январь же. у стартапов вспыли баги с 0 индексом
      Ответить
  • Говорят, в четвёртом питоне массивы будут нумероваться с единицы, как в паскале
    Ответить
    • Но ведь в Паскале массивы можно нумеровать с любого значения, хоть с отрицательного.

      Это в старом Фортране и в Бейсике (при наличии директивы OPTION BASE) нумерация с единицы.
      Ответить
    • Ну, как бы если в программе есть ошибка, пользователь увидит таинственное 24 нулября. Если уж пишешь велосипед для работы с датами, сделай ты два селектора listMonthNames и getMonthByNumber. В последнем нужно добавить валидацию переданного номера месяца, чтобы выявлять ошибки как можно раньше и производить приведение номера к индексу массива.
      Ответить
      • в этом и напряг выходит: чтобы получить описание месяца по порядковому номеру необходимо ВСЕГДА дергать через хелпер. из контекста не ясно, как используется массив. может взятие по индексу происходит в тот момент когда все проверки уже пройдены
        Ответить
        • Даже если массив является приватным в классе, код как минимум забавен. Действительно, проще добавить таинственный месяц, чем отнимать от номера единичку при обращении.
          Ответить
          • вы в java никогда с месяцем не ошибались? =)
            Я никак не могу понять: почему месяцы с нуля, а числа месяца - с еденицы
            Ответить
            • > Я никак не могу понять: почему месяцы с нуля, а числа месяца - с еденицы
              Значит ты сишную структуру tm не видел... Там, в дополнение к этому, еще и годы с 1900.
              Ответить
      • кстати, про 24 нулября. Уж лучше увидеть 24 нулября - по крайней мере пользователь сразу поймет, что программа глючит, чем он увидит 24 января - это создаст иллюзию, что все работает отлично.
        Ответить
        • Не заметят где-нибудь на платёжке или важном договоре - так и уйдёт на подпись.
          Ответить
          • от того что подпишут с январем лучше тоже никому не будет =)
            Ответить
      • Использовал орг-мод, но на мобильном с редактированием тяжело. Таскать туда-сюда из напоминаний сотового - не самое лучшее использование времени.

        Не подскажете - появились работающие приложения для работы с орг-модом на смартфонах?
        Ответить
        • > работы с орг-модом на смартфонах?
          Месье знает толк в извращениях. Я вообще редко использую телефон, в основном для звонков и реже для отправки смс, ибо набирать текст на маленьком куске пластика - не самое приятное занятие.
          Ответить
  • a = 5 # Порядковый номер месяца
    monthes = [ 'Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря']
    print mouthes[a+1]

    Не?
    Ответить
    • Это же говнокод! Лучше массивы с 1 начинать чтобы было было удобнее говнокодячить.
      Ответить
      • Задачи разные бывают. Некоторые требуют, чтобы массив начинался с нуля. Выход везде один - декремент\инкремент индекса. Благо они занимают всего один байт памяти. Алсо, в x64 чистые команды INC REG, DEC REG отсутствуют вообще.
        Ответить
        • всмысле INC один байт занимает? это вместе с операндом?
          Ответить
          • Общая формула такова: Базовый опкод + номер регистра
            Базовые опкоды:
            INC - 40h
            DEC - 48h
            PUSH - 50h
            POP - 58
            Номера регистров:
            EAX - 0
            ECX - 1
            EDX - 2
            EBX - 3
            ESP - 4
            EBP - 5
            ESI - 6
            EDI - 7
            Ответить
            • при царе горохе ALU выполнял сложение с фиксированными регистрами
              Ответить
    • > monthes
      > mouthes
      И ведь скомпилится и будет даже работать... Динамическая типизация во всей красе. А также нежелание некоторых работать в IDE вместо Блокнота/vim/emacs и прочей хуерги.
      Ненависть!
      Ответить
    • 5ый месяц это апрель?
      или
      1.9.3-p362 :001 > a = 5 # Порядковый номер месяца
       => 5 
      1.9.3-p362 :002 > monthes = [ 'Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря']
       => ["Января", "Февраля", "Марта", "Апреля", "Мая", "Июня", "Июля", "Августа", "Сентября", "Октября", "Ноября", "Декабря"] 
      1.9.3-p362 :004 > print monthes[a+1]
      Июля => nil

      a-1?
      Ответить
  • Предлагаю ввести дополнительный месяц оверфловрь.
    Ответить
    • Ходит по двору петух — важничает, а другой петух горошек клюёт.
      Первый петух подбегает и говорит:
      — Ко-ко-ко, отдай горох!
      — Не дам, — говорит второй.
      — Тогда заклюю! — нападает первый.
      Вот распустили они перья и начали драку.
      Пока петухи дрались, куры съели всё зерно, а потом и горошек.
      Ответить
      • Ходит по двору петух — важничает, а другой петух сгущёнку стережет.
        Первый петух подбегает и говорит:
        — Ко-ко-ко, отдай сгущёнку!
        — Не дам, — говорит второй.
        — Тогда заклюю! — нападает первый.
        Вот распустили они перья и начали драку.
        Пока петухи дрались, куры съели всю сгущёнку.
        Ответить

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8