2014-07-23 5 views
2

Я знаю, что для переменной экземпляра все, что мне нужно сделать, это поместить ее внутри метода инициализации в сторону экземпляра и присвоить ей значение по умолчанию. Но как я это делаю для переменной класса? Я попытался создать метод Initialise в классе стороне, но это не давало мое переменное значения по умолчанию, так что я должен был сделать это в одном из моих методовКак инициализировать переменную класса?

pythonString ifNil:[pythonString := ''] 

Но мне не нравится этот подход.

Я также нашел это для скрипа, http://forum.world.st/Howto-initialize-class-variables-td1667813.html снова Мне тоже не нравится этот подход. Есть ли правильный способ сделать это. В Python это был довольно простой случай назначения, почему он настолько загадочен для Pharo?

ответ

2

Прежде всего, я надеюсь, что вы говорите об переменной экземпляра объекта класса (а не о том, что вы определяете на стороне экземпляра как «переменной класса»).

initialize работает, но он запускается при создании экземпляра. И экземпляр (объект класса) существует уже при определении метода initialize.

Поэтому, когда вы определяете свой класс в первый раз, вы должны запустить его самостоятельно, например. YourClass initialize, bun later каждый раз, когда вы загружаете свой класс в систему, он должен быть инициализирован.

+0

Нет Я имею в виду переменную класса, определенную на стороне экземпляра – Kilon

+2

Ответ Уко удержания как для переменных класса, так и для переменных экземпляра классов. Вы должны написать свою инициализацию по методу #initialize класса class и выполнить вручную в первый раз. Monticello позаботится об этом, когда он загрузит ваш код в будущем. –

+0

Благодарю вас, Дэмиен и Уко, ответ принят и одобрен :) – Kilon

Смежные вопросы