Я новый посетитель Smalltalk и узнал его в Squeak. Но я нахожу много вещей, смущающих в Smalltalk. В Squeak, MetaClass
и MetaClass class
друг друга друг друга взаимно. Если я хочу создать объект MetaClass
, я должен отправить сообщение new
в его класс, который является MetaClass class
. Но он, должно быть, уже существовал как объект, чтобы принять сообщение. Поэтому я должен сначала создать объект MetaClass class
, что может быть сделано только путем отправки сообщения new
объекту MetaClass
, который еще не создан. Так что это проблема с курицей или яйцом.Несоответствия в smalltalk
Конечно, я могу создать объекты в Squeak сейчас, потому что объекты MetaClass
и MetaClass class
были созданы автоматически магически, когда Squeak открыт. Но я не знаю, как это сделать. Возможно, они созданы каким-то образом, отправляя сообщения. Но тогда это противоречит духам Smalltalk: все происходит путем отправки сообщений, за исключением нескольких точек (объявление переменных, присвоений, возвратов и примитивов).
Есть ли что-то не так с вышеуказанными рассуждениями? Заранее спасибо.
Является ли это то, что после того, как я определю класс, например 'A', объект' A' будет создан системой Smalltalk и будет сохранен для изображения при закрытии? – spockwang
Да, когда вы сохраните изображение, объект класса 'A' сохранится. – Tobias