Добрый вечер)
Читаю литературу по руби. Разумеется есть вопросы.
1)
Есть объект
я пишу
Мне ясно, что метод same_action будет искаться в классе A, если там его нет, то в классе Object.
Как я себе это представляю.
есть экземпляр объекта Class
Пусть будет
именно в нем(??) будет содержаться метод same_method если он объявлен в классе A. Именно в нем интерпретатор ищет этот метод вначале?
В противном случае у объекта class_obj будет вызван метод superclass и искомый метод будет искаться в superclass_obj?
Чувствую что что-то понимаю не так.
Следующий вопрос
2)
Насколько я понял будет создан анонимный объект, который будет содержаться в
и в
ссылаться на A. Вообще насколько я понимаю классов как таковых в руби не существует, есть просто объекты и другие объекты которые описывают объекты?
А если я напишу
В методе hello self ссылается на a?
В объявлении класса self.extended self ссылается на экземпляр a.class Так как A это экземпляр класса class?
В общем извиняюсь за наверняка глупые и запутанные вопросы
Добавлено через 6 минут
И существует ли объект a.class в тот момент когда я объявляю класс A. Насколько я понимаю объявление класса в руби и строго типизированном языке аля джава или шарп это абсолютно непохожие операции, при этом имеющие некие более менее общие цели.
Читаю литературу по руби. Разумеется есть вопросы.
1)
Есть объект
Код:
class A
def hello
puts 'hello world'
end
end
a = A.new
c = a.class
Код:
a.same_action
Как я себе это представляю.
есть экземпляр объекта Class
Пусть будет
Код:
class_obj = a.class
В противном случае у объекта class_obj будет вызван метод superclass и искомый метод будет искаться в superclass_obj?
Чувствую что что-то понимаю не так.
Следующий вопрос
2)
Код:
a = A.new
def a exctended
puts "12345"
end
Код:
metaclass = a.class
Код:
metaclass.superclass
А если я напишу
Код:
class A
def hello
puts "hello #{self.world}"
end
def world
puts 'world'
end
def self.exctended
puts "12345"
end
end
a = A.new
В объявлении класса self.extended self ссылается на экземпляр a.class Так как A это экземпляр класса class?
В общем извиняюсь за наверняка глупые и запутанные вопросы
Добавлено через 6 минут
И существует ли объект a.class в тот момент когда я объявляю класс A. Насколько я понимаю объявление класса в руби и строго типизированном языке аля джава или шарп это абсолютно непохожие операции, при этом имеющие некие более менее общие цели.