Учитывая, что на языке программирования Ruby все называется объектом, я уверен, что передача аргументов методам производится по ссылке. Однако этот маленький пример ниже меня озадачивает:
$string = "String"
def changer(s)
s = 1
end
changer($string)
puts $string.class
String
=> nil
Как вы видите, исходный объект не был изменен, я хочу знать почему, а также, как я мог выполнить желаемое поведение, т.е. Получение метода для фактического изменения объекта, на который ссылается его аргумент.