Как игроки в кодекс, мы не привыкли к выпуску ( конечно ). Нам понадобятся несколько инструментов, чтобы помочь нам сделать это.
Конечно, чтобы помочь в маркетинге нового выпуска, нам нужна красивая и блестящая версия выпуска. Кто не возбуждается, когда слышит о версии 3.0.0?
задача
Ваша задача будет написать программу / рутина / ... для увеличения номера версии.
Вам нужно увеличить номер версии и сбросить «менее важные» (например, версию патча).
Вы получаете два аргумента: текущую версию (например, «1.0.3») в виде строки и индекс, чтобы узнать, какой из них обновить (0 или 1-индексированный).
Пример с 0 индексами:
next-version("1.0.3", 0) # 2.0.0
next-version("1.2.3.4.5", 2) # 1.2.4.0.0
next-version("10.0", 0) # 11.0
next-version("3", 0) # 4
next-version("1", 7) # ERROR
next-version("01", 0) # ERROR
Версия представляет собой строку, каждая часть представляет собой число, разделенное точкой. Не может быть ни начальных, ни конечных, ни последовательных точек (и ничего кроме чисел / точек). Нет ограничений на размер строки версии.
^[1-9]\d*(\.[1-9]\d*)*$
Случай ошибки (последние два примера) - неопределенное поведение. То, что происходит в случае неправильного ввода, не имеет отношения к этой проблеме.
Как обычно, стандартные лазейки запрещены. Вы можете распечатать или вернуть строку.