Я не имею в виду переменную класса. Я хочу переменную, которую можно использовать везде. Где его определить? [in squeak]Как создать глобальную переменную в Squeak?
ответ
Один из способов - сделать одноэлементный, как in this answer.
Как правило, вы создаете переменную класса и метод сопутствующего класса, чтобы позволить некоторому объекту стать глобально доступным. См. Вышеупомянутый синглтон в качестве примера. Такие переменный затем обращается с другом:
global := MyClass myGlobalVar
Чтобы стал также глобально изменчив, сделать метод класса мутатора и называют это нравится:
MyClass myGlobalVar: true
Есть и другие способы тоже, но это один с переменным классом является переносимый на диалектах Smalltalk, в долгосрочной перспективе это самый безопасный способ.
Squeak хранит все экземпляры классов и другие глобальные переменные в SystemDictionary под названием Smalltalk. Вы можете определить глобальную переменную так:
Smalltalk at: #variableName put: theValue.
Отсносящийся переменной variableName
вернется theValue
.
Однако хороший стиль Smalltalk заключается в том, чтобы избежать глобальных переменных вообще.
Это одна из возможностей, но Smalltalkers избегают этого, потому что это очень опасно. Если вы по ошибке назовите переменную так же, как какой-то существующий класс, вы удалите этот класс ... Вот почему даже в Squeak этот подход медленно обесценивается. Другие Smalltalks не имеют его или имеют его по-разному. –
Smalltalkers предпочитают вообще избегать глобальных переменных. – Nat
Ну, класс в smalltalk доступен по всему миру, и вы можете изменить его, когда захотите. Просто создайте класс и добавьте свой код изменения в качестве методов класса. Затем вы можете получить доступ к своим материалам, позвонив по телефону
MyVariable thisOrThat
MyVariable updateThisOrThat: aThisOrThat
- 1. Как создать глобальную переменную?
- 2. Как создать JQuery глобальную переменную
- 3. Создать новую глобальную переменную?
- 4. Webpack: создать глобальную переменную
- 5. Silex, создать глобальную переменную
- 6. Создать глобальную переменную в Postgresql
- 7. Создать глобальную переменную в машинописи
- 8. Создать глобальную переменную в JavaScript
- 9. Как создать глобальную переменную в Wso2 ESB
- 10. Как создать глобальную переменную в ATS?
- 11. Как создать глобальную переменную в Visual Basic
- 12. Как создать глобальную переменную в эликсира модуле
- 13. Как создать глобальную переменную в нескольких приложениях
- 14. Как создать глобальную переменную в прологе
- 15. Как создать глобальную переменную в Kraken JS
- 16. Script пытались создать глобальную переменную
- 17. Как создать «глобальную переменную» с таблицей?
- 18. Как создать динамически названную глобальную переменную?
- 19. Mule Studio Как создать глобальную переменную
- 20. Как создать глобальную переменную G-Wan правильно?
- 21. Как создать глобальную строковую переменную Java java?
- 22. Как правильно создать класс глобальную переменную
- 23. Создать глобальную статическую переменную в SQL Server?
- 24. Создать глобальную переменную в Visual Studio 2008
- 25. Как создать глобальную (глобальную) сеть?
- 26. Как отключить глобальную переменную?
- 27. Как инициализировать глобальную переменную
- 28. Создать новые псевдопеременные в Squeak
- 29. Переназначить сохраненную глобальную переменную как не глобальную
- 30. Javascript, создать глобальную переменную с окном []
ОК, но я хочу, чтобы объект существовал в каждом приложении. Я думал об определении переменной как переменной класса метакласса «Класс объекта». Таким образом, этот объект можно было бы использовать, верно? Как вы думаете? – 2009-05-21 12:04:48
Я бы точно не изменил такие важные классы, как Object и другие системные. Если вы используете эту переменную больше в одном приложении, создайте общий пакет с этим классом, который будет содержать эту переменную. Затем загрузите этот пакет как необходимое условие для всех других пакетов с вашими приложениями. В настоящее время это считается наиболее подходящим способом для глобалов в Smalltalk. –
Я думаю, что это мой ответ. У меня есть несколько заданий: 1. Где определить метод доступа? В классе «MyClass»? 2. Как инициализировать переменную? – 2009-05-21 12:26:03