Когда я пишу следующую программу,Почему код внутри классов выполняется автоматически при запуске рубинового скрипта?
class Classname
puts "hi"
end
сохранить его как .rb файл и выполнить файл в терминале, то выход «привет» возвращается. Я не понимаю, почему. Разве мне не нужно назначать этот оператор puts методу, создавать объект класса Classname и затем вызывать метод на указанном объекте для получения этого вывода? Или, по крайней мере, поставить инструкцию puts в метод инициализации класса, а затем создать объект? Почему это работает так, как есть?
, когда вы используете ключевое слово 'class' для определения класса, он фактически создает новый объект' Class' и выполняет внутренний код в своем контексте. см. http://stackoverflow.com/a/9202363/591495 – oldrinb
Как вы определяете методы, если код внутри класса не был выполнен? Как бы вы назвали метод attr_accessor', если код внутри класса не был выполнен? Как создать экземпляр, если класс определения инициализации не был выполнен до инициализации объекта? Почему определение метода 'initialize' должно выполняться снова и снова для каждого созданного вами экземпляра? –