Может ли кто-нибудь расширить, исправить или проверить то, что, как мне кажется, происходит, когда вы передаете аргументы методу в Ruby. Являются ли какие-либо из этих пунктов неправильными? Может быть, я упустил какие-то детали?
- Все в Ruby является объектом.
- Переменные - это ссылки на объекты
- (При передаче переменной в метод): Параметр в методе, который ловит переменную, является локальной переменной этого метода. Параметр (локальная переменная) теперь также имеет ссылку на тот же объект.
- Я могу изменить объект (на месте), и это изменение сохранится после выхода из области видимости метода. Любые переменные, ссылающиеся на этот объект вне области действия метода, будут отражать, что объект был изменен.
- Новое присвоение этому параметру (локальной переменной) не изменяет исходный объект, поэтому любые ссылки на него при выходе метода из области видимости останутся неизменными.
- Если я передаю в метод переменную, которая ссылается на целое число, то после выхода метода из области видимости у меня нет никакой возможности сделать так, чтобы эта переменная ссылалась на новое целое число.
Есть ли способ иметь метод, который принимает в качестве одного из своих параметров Integer, выполняет некоторые действия и, возможно, в качестве побочного эффекта изменяет значение, причем это изменение отражается после выхода из метода. Возможно, я просто не думаю "по-рубиновски".
задан Andrew Grimm 22 April 2012 в 23:21
поделиться