Петото предизвикателство е публикувано. Както винаги, примерният тест може да бъде намерен в хранилището в Github.
Питайте тук, ако има нещо неясно.
Петото предизвикателство е публикувано. Както винаги, примерният тест може да бъде намерен в хранилището в Github.
Питайте тук, ако има нещо неясно.
[1,2,4,5,6,7,8].split_up(length: 4, step: 2) #=> ??
т.е когато length > step, какво трябва да се върне?
@Иван, цитирам условието – "Методът няма да се вика с length > step." Тоест, не е нужно да обработвате този случай.
P.S. Използвай синтаксиса за блокове код в Markdown.
Имам нужда от малко уточнение на едно от условията:
В този случай, върнатата стойност от split_up не се променя по никакъв начин.
Да предположим, че извикаме:
1.upto(5).split_up(length: 2) { |slice| slice << :! }
Какво получаваме тогава? Аз бих казал [[1, 2, :!], [3, 4, :!], [5, :!]]
, но това все пак си е промяна. =]
@Георги Кръстев, прав си. Това ще мутира върнатия списък. Условието е коригирано.
Edit: Забележката ми беше грешна.
И от мен един въпрос: извинявам се предварително, ако аз не съм догледала нещо, но ми се струва, че в единия от примерите, които сте дали, май има малка неточност.
1.upto(10).split_up(length: 2, step: 3, pad: [:a, :b, :c])
=> [[1, 2], [4, 5], [7, 8], [10, :a]]
Не трябва ли да върне [[1, 2], [4, 5], [7, 8], [10, :a], [:c]]
?
@Аделина, не, примерът е коректен. Така трябва да работи вашата имплементация, т.е. да допълва само евентуалните липсващи елементи в последния слайс на списъка.
P.S. Използвай Markdown. Редактирал съм ти мнението, за да добавя форматиране. Влез в "Редакция" и виж какъв синтаксис съм ползвал.
При подадени pad и блок блокът за крайния резултат ли трябва да се изпълнява или преди да се допълнят нужните елементи от pad?
@Никола Ненков, за крайния резултат.
Каква е грешката, ако не се подаде никакъв параметър на функцията и ще има ли такива тестове?
И ако се подаден празен списък, какво връща?
@Ангел Венчев, в условието е написано, че length:
е задължителен keyword аргумент. Съответно, ако не го подадеш, ще си изгърми с ArgumentError
.
@Александър Тахчиев, празен списък.
[].split_up(length: 2) # []
Трябва да сте влезли в системата, за да може да отговаряте на теми.