Вопросы на понимание
- Что такое динамический язык программирования?
- Передача значения по ссылки. Что в языке Ruby передается по ссылке, а что по значению?
- Возможно ли в Ruby множественное наследование?
- Примеси (Mixins). Пример использования.
- Опишите семантику следующих методов String и Array
-
String#split
& Array.join
-
String#split
& String.scan
-
String#[]
-
String#index
-
Array#map
-
Array#each
-
Array#flatten
-
Array#uniq
, Array#uniq!
-
Array#sort
, Array#sort!
- Что такое Enumerable?
- DRb
- Основная концепция
- Управление методом передачи результата: результат может быть удаленным или локальным.
- Threads & Processes
- Основные различия
- Green & native threads
- Интроспекция
- Методы:
class
, methods
, respond_to?
, is_a?
.
- Методы:
instance_variables
, class_variables
, methods
, respond_to?
, is_a?
.
- Что такое duck typing?
- Что такое class, superclass и singleton class?
- Что такое singleton метод? Приведите пример, где может оказаться полезным определение singleton метода.
- Контексты
- Когда меняется значение
self
в коде (внутри каких блоковых конструкций значение self
может отличаться от его значения снаружи блока)?
-
- Внутри каких блоковых конструкций значение @a может отличаться от его значения снаружи блока?
- Внутри каких блоковых конструкций значение @@a может отличаться от его значения снаружи блока?
- Метапрограммирование
-
Kernel#eval
-
Class#class_eval
, Object#instance_eval
-
Class::define_method
- Class#new (создание анонимных классов)
- В чем различие двух приведенных способов выполнения некоторого КОДа?
Array.class_eval do
# КОД
end
class Array
# КОД
end
- Блоки
- Два способа работы с ассоциированным блоком (через
yield
и явно указывая аргумент &block).
- Метод
arity
- lambda-конструкция
- В чем различие классов Method и Proc?
- Использование звездочки при объявлении аргументов метода и передаче массива в аргументах при вызове метода.