Решение на Четвърта задача от Михаил Жеков

Обратно към всички решения

Към профила на Михаил Жеков

Резултати

  • 0 точки от тестове
  • 0 бонус точки
  • 0 точки общо
  • 0 успешни тест(а)
  • 0 неуспешни тест(а)

Код

REPOSITORY = 'http://github.com/oplik/ruby-retrospective-2'
#не съм решил трета задача, прочетох, че трябва и трите да са
#решени, за да бъдат погледнати въобще, но понеже първа и втора
#минават тестовете реших да ги кача
# 20 неща, които научих:
# Тъй като до сега не бях подкарвал нито една от задачите
# и не бях ходил на лекции, изтеглих една книга и научих доста
# неща
#
# 1. Array#flatten -> в началото го използвах без аргумент,
# след това видях, че може да се зададе дълбочина на
# "изравняването"
# 2. Enumerable и всичко свързано с него, като за началото
# inject() -> изпълнява блок от код обхождайки даден масив
# или хеш, като при всяко следващо изпълнение си предава
# последния изпълнен ред от миналото изпълнение
# 3. yield -> ако подадеш блок като аргумент на функция, той
# се извиква с yield, като ако блока се нуждае от аргументи,
# те също му се предават чрез yield
# 4. is_a? проверява дали дадена променлива е от даден клас
# (предполагам няма разлика с kind_of?)
# 5. Array#join превръща даден масив в стринг, което се оказа
# доста удобно за първата задача
# 6. Че трябва да зададеш начална стойност на променливите, за
# да може да прибяваш към тях. То е логично, но си мислех, че
# по подразбиране всяка променлива е нулев интеджер, в което
# няма логика. В последствие намерих и Hash#default, задаващ
# 7. Разбрах, че масиви и стрингове могат да се адресират от към
# края си. Тоест елемента на последна позиция може да бъде
# взет с [-1]
# 8. В последствие разбрах и, че за да изрежа даден масив или
# стринг и да взема всички елементи без първия мога да
# ползвам [1..-1]
# 9. Разбрах и че конструктора на Hash може да приеме масив,
# след което да създаде поредица от ключове и стойности
# 10. Научих, че може да задам стойности на серия от променливи
# по-следния начин: var_1, var_2 = 1, 2
# 11. Изглежда логично, но видях, че има метод за взимане на
# последната буква в стринг end_with
# 12. Разбрах, че има алтернатива, точно обратна на if -> unless
# 13. Доста полезен метод за масиви uniq и uniq!, оставя само
# уникалните елементи в даден масив, оказа се полезен
# в задачата с песните, където тагове идваха от няколко
# места
# 14. Мога да изпълнявам конюнкции, дизюнкции и сечения върху
# масиви -> което си е супер
# 15. Метода за конкатениране на два масива Array#concat
# 16. Следват и няколко метода от Enumerable: първо е select,
# изпълняващ даден блок код върху масив или хеш и връщащ
# в нов масив елементите изпълняващи условието
# 17. all? проверяващ дали всички елементи изпълняват дадено
# условие
# 18. Бях разочарован, че не може да пренасяш условия на няколко
# реда: тоест if. .... and
# .... and .... не може, или аз не успях да го
# подкарам
# 19. String#strip - премахва всички бели пространства в
# началото на даден стринг -> доста удобно за втората задача
# 20. Ако бях написал и третата задача може би щях да науча още
# доста неща, но за мое съжаление пак почнах късно

История (1 версия и 0 коментара)

Михаил обнови решението на 14.11.2011 16:31 (преди около 13 години)

+REPOSITORY = 'http://github.com/oplik/ruby-retrospective-2'
+#не съм решил трета задача, прочетох, че трябва и трите да са
+#решени, за да бъдат погледнати въобще, но понеже първа и втора
+#минават тестовете реших да ги кача
+
+# 20 неща, които научих:
+# Тъй като до сега не бях подкарвал нито една от задачите
+# и не бях ходил на лекции, изтеглих една книга и научих доста
+# неща
+#
+# 1. Array#flatten -> в началото го използвах без аргумент,
+# след това видях, че може да се зададе дълбочина на
+# "изравняването"
+# 2. Enumerable и всичко свързано с него, като за началото
+# inject() -> изпълнява блок от код обхождайки даден масив
+# или хеш, като при всяко следващо изпълнение си предава
+# последния изпълнен ред от миналото изпълнение
+# 3. yield -> ако подадеш блок като аргумент на функция, той
+# се извиква с yield, като ако блока се нуждае от аргументи,
+# те също му се предават чрез yield
+# 4. is_a? проверява дали дадена променлива е от даден клас
+# (предполагам няма разлика с kind_of?)
+# 5. Array#join превръща даден масив в стринг, което се оказа
+# доста удобно за първата задача
+# 6. Че трябва да зададеш начална стойност на променливите, за
+# да може да прибяваш към тях. То е логично, но си мислех, че
+# по подразбиране всяка променлива е нулев интеджер, в което
+# няма логика. В последствие намерих и Hash#default, задаващ
+# 7. Разбрах, че масиви и стрингове могат да се адресират от към
+# края си. Тоест елемента на последна позиция може да бъде
+# взет с [-1]
+# 8. В последствие разбрах и, че за да изрежа даден масив или
+# стринг и да взема всички елементи без първия мога да
+# ползвам [1..-1]
+# 9. Разбрах и че конструктора на Hash може да приеме масив,
+# след което да създаде поредица от ключове и стойности
+# 10. Научих, че може да задам стойности на серия от променливи
+# по-следния начин: var_1, var_2 = 1, 2
+# 11. Изглежда логично, но видях, че има метод за взимане на
+# последната буква в стринг end_with
+# 12. Разбрах, че има алтернатива, точно обратна на if -> unless
+# 13. Доста полезен метод за масиви uniq и uniq!, оставя само
+# уникалните елементи в даден масив, оказа се полезен
+# в задачата с песните, където тагове идваха от няколко
+# места
+# 14. Мога да изпълнявам конюнкции, дизюнкции и сечения върху
+# масиви -> което си е супер
+# 15. Метода за конкатениране на два масива Array#concat
+# 16. Следват и няколко метода от Enumerable: първо е select,
+# изпълняващ даден блок код върху масив или хеш и връщащ
+# в нов масив елементите изпълняващи условието
+# 17. all? проверяващ дали всички елементи изпълняват дадено
+# условие
+# 18. Бях разочарован, че не може да пренасяш условия на няколко
+# реда: тоест if. .... and
+# .... and .... не може, или аз не успях да го
+# подкарам
+# 19. String#strip - премахва всички бели пространства в
+# началото на даден стринг -> доста удобно за втората задача
+# 20. Ако бях написал и третата задача може би щях да науча още
+# доста неща, но за мое съжаление пак почнах късно