Решение на Четвърта задача от Диляна Тодорова

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

Към профила на Диляна Тодорова

Резултати

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

Код

REPOSITORY = https://github.com/DilyanaTodorova/ruby-retrospective-1
# Двадесет неща, които научих.
#
# 1. В руби съществува splat оператор (обозначаван със #звездичка *). Служи за разделяне на масив на неговите #елементи.
#Отнася се и за всички обекти изпълнящи to_a. Методите също #могат да приемат *argument. Звездичката оказва че метода ще #получи множество от стойности.
# 2. flatten служи за премахване нивата на вложеност в #масива.
# Може да му се подаде параметър указваш до кое ниво да #стига. Използван за Hash обекти служи да върне стойността за #подаден като параметър ключ или множество от ключове.
# 3. Използването на итератори е по-доброто и кратко #решение от
# обикновения for оператор
# 4. Смесването на унгарска нотация, използвана от #Microsoft, и
# стила на змията (snake_case), възприет от руби обществото #не изглежда красиво. cntPeople - означава брояч. Научих, че #count_people се нарича стил на змията.
# 5. Руби позволява доста изрази да се напишат на един ред. #При изрази с inject на един ред точка и запетаята е #задължителна. Без точка и запетая inject е на три реда. Това #обяснява защо руби синтаксиса позволява да се използва ;
# 6. Задаването на стойност по подразбиране може да спести #евентуални скрити проблеми (бъгове). Неинициализираните #променливи са зло дори и в руби.
# 7. В Руби статичните функции/клас функциите се дефинират #като при дефинирането се използва self.
# 8. Статичните променливи се задават с @@
# 9. Миксирането може да бъде забавно. Модулите добавят #нова функционалност към класа, като директно достъпват #променливите на дадения клас.
# 10. Руби притежава динамични методи.
# 11. В руби Proc не е процедура. Процедурите в руби играят #роля на функция, могат да връщат стойност. Proc e обект, на #които се задава стойност използвана по-късно за изчисления. #Изпълнението на Proc e с метода call. Конвертирането между #Proc и блог става с &
# 12. В Руби lambda e функция, която създава Proc. #Основната разлика е, че lambda притежава проверка за броя #аргументи
#13. Символите също са обекти и имат дефиниран метод #to_proc, които търси функция със същото име.
#14. Метода send изпраща съобщение към обект - извиква #метод на обекта със същото име като стринга подаден като #аргумент на send. Метода send има опционални параметри - #алгументите към функцията.
#15. Създаването на стринг от стринг и стойност на #променлива става лесно чрез "някакъв
#статичен текст #{променлива}"
#16. Продуктите притежават промоции, а не промоциите продуктите
#17. Метода detect за разлика от select връща първата намерена #стойност
#18. Duck Typing е една от хубавите страни на динамичните езици #като руби. На практика обезмисля използването на полиморфизма #чрез наследяване. При подаването на параметри няма типове, #така че трябва просто да се дефинира по един клас за всеки #необходим клас. Миксирането се справя добре с преизползването #на код.
#19. В руби съществува библиотека за изчисляване на числа с #голяма прецизност. Числата се представят под формата на дроби, #а класа е BigDecimal.
#20. Класа стирнг има удобен начин за извеждането на аргументи.
#21. Функциите нямат нужда от скобки за параметрите. Когато се #използват скобки е добре между запетаята на първия аргумент и #втория да има един спейс разстояние.
#22. Подобно на други езици в руби има именувани #пространства съдържащи в себе си набор от класове. Това помага #а подреждането на кода и избягването на конфликти при имената. #Достъпването на класове в намеспейса става по подобен на си #начин, чрез оператора

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

Диляна обнови решението на 14.11.2011 16:50 (преди около 13 години)

+ REPOSITORY = https://github.com/DilyanaTodorova/ruby-retrospective-1
+
+
+ # Двадесет неща, които научих.
+ #
+ # 1. В руби съществува splat оператор (обозначаван със #звездичка *). Служи за разделяне на масив на неговите #елементи.
+ #Отнася се и за всички обекти изпълнящи to_a. Методите също #могат да приемат *argument. Звездичката оказва че метода ще #получи множество от стойности.
+ # 2. flatten служи за премахване нивата на вложеност в #масива.
+ # Може да му се подаде параметър указваш до кое ниво да #стига. Използван за Hash обекти служи да върне стойността за #подаден като параметър ключ или множество от ключове.
+ # 3. Използването на итератори е по-доброто и кратко #решение от
+ # обикновения for оператор
+ # 4. Смесването на унгарска нотация, използвана от #Microsoft, и
+ # стила на змията (snake_case), възприет от руби обществото #не изглежда красиво. cntPeople - означава брояч. Научих, че #count_people се нарича стил на змията.
+ # 5. Руби позволява доста изрази да се напишат на един ред. #При изрази с inject на един ред точка и запетаята е #задължителна. Без точка и запетая inject е на три реда. Това #обяснява защо руби синтаксиса позволява да се използва ;
+ # 6. Задаването на стойност по подразбиране може да спести #евентуални скрити проблеми (бъгове). Неинициализираните #променливи са зло дори и в руби.
+ # 7. В Руби статичните функции/клас функциите се дефинират #като при дефинирането се използва self.
+ # 8. Статичните променливи се задават с @@
+ # 9. Миксирането може да бъде забавно. Модулите добавят #нова функционалност към класа, като директно достъпват #променливите на дадения клас.
+ # 10. Руби притежава динамични методи.
+ # 11. В руби Proc не е процедура. Процедурите в руби играят #роля на функция, могат да връщат стойност. Proc e обект, на #които се задава стойност използвана по-късно за изчисления. #Изпълнението на Proc e с метода call. Конвертирането между #Proc и блог става с &
+ # 12. В Руби lambda e функция, която създава Proc. #Основната разлика е, че lambda притежава проверка за броя #аргументи
+ #13. Символите също са обекти и имат дефиниран метод #to_proc, които търси функция със същото име.
+ #14. Метода send изпраща съобщение към обект - извиква #метод на обекта със същото име като стринга подаден като #аргумент на send. Метода send има опционални параметри - #алгументите към функцията.
+ #15. Създаването на стринг от стринг и стойност на #променлива става лесно чрез "някакъв
+#статичен текст #{променлива}"
+#16. Продуктите притежават промоции, а не промоциите продуктите
+#17. Метода detect за разлика от select връща първата намерена #стойност
+#18. Duck Typing е една от хубавите страни на динамичните езици #като руби. На практика обезмисля използването на полиморфизма #чрез наследяване. При подаването на параметри няма типове, #така че трябва просто да се дефинира по един клас за всеки #необходим клас. Миксирането се справя добре с преизползването #на код.
+#19. В руби съществува библиотека за изчисляване на числа с #голяма прецизност. Числата се представят под формата на дроби, #а класа е BigDecimal.
+#20. Класа стирнг има удобен начин за извеждането на аргументи.
+#21. Функциите нямат нужда от скобки за параметрите. Когато се #използват скобки е добре между запетаята на първия аргумент и #втория да има един спейс разстояние.
+
+ #22. Подобно на други езици в руби има именувани #пространства съдържащи в себе си набор от класове. Това помага #а подреждането на кода и избягването на конфликти при имената. #Достъпването на класове в намеспейса става по подобен на си #начин, чрез оператора