В Ruby можно передать по ссылке параметр с семантикой типа значения (например, Fixnum)? Я ищу что-то похожее на C# '' ref '.'передать параметр по ссылке' в Ruby?
Пример:
def func(x)
x += 1
end
a = 5
func(a) #this should be something like func(ref a)
puts a #should read '6'
Btw. Я знаю, что могу просто использовать:
a = func(a)
Я не понимаю, что Ruby не передает ref, когда переменные и параметры могут содержать только ссылки на объекты. Говорить, что ссылки передаются по значению, это то же самое, что сказать, что объекты передаются по ссылке. – 2009-05-03 13:17:08
@ Damien: нет, это не так. Передача по ссылке (например, в C++, C#, PHP, Perl) позволяет * присваивать * переменной, как если бы вы ее назначили во внешней области. То, что вы пытаетесь сделать здесь, было бы возможно с истинным проходом по ссылке; но не с передачей по значению ссылок. – newacct 2012-04-23 17:34:27
Вы правы, я читаю ответ Кристофа и мой комментарий снова, и я не согласен с моим 2009-м. Хм ... – 2012-04-24 01:50:29