루비에서 출력 인수를 사용하여 메소드를 만들려고합니다.루비 메소드가 출력 매개 변수를 전달하는 방법 (참조 된 인자의 값을 변경)?
나는 인수 가치에 의해 또는 참조에 의한와
나는 엄격한 SENS에, 루비는 항상 패스에 의해 가치가 있음을 undersand 통과 differents의 게시물 here과 거세한 숫양 루비의 토론에 대한 here를 읽을 수 있지만, 전달 된 값은 실제로 참조입니다. 왜 이렇게 많은 논쟁이 벌어 지는지에 대한 이유.
참조 된 변수의 값을 변경하는 방법은 여러 가지가 있음을 알았습니다. 의 경우 배열, 해시 또는 문자열 또는 병합 할 때 메서드를 바꿉니다. 해시입니다.
나는 정수으로, 내가 변경하고 특별한 방법을 사용하지 않고 내 방법 이외의 값을 전달할 것을 알아 냈다.
내 질문에 대한 다른 객체입니다.
class RestaurantController < ApplicationController
def pizza_to_deliver(pizza_name, id_of_the_order, pizza)
# pizza to eat
pizza = Pizza.where(:name => pizza_name).first
# unknown pizza
return false if pizza.nil?
# first customer order about this pizza
id_of_the_order = Orders.where(:pizza_id => pizza.id).first
true
end
end
my_pizza_name = 'margerita'
My_order_id = nil
my_pizza = nil
my_restaurant = RestaurantController.new
if my_restauant.pizza_to_deliver(my_pizza_name, My_order_id, my_pizza) then
puts "Pizza to deliver : #{my_order_id}"
rex_dog.eat(my_pizza)
end
방법이 작동하는지 확인하기 위해 : 나는 개체의 'id'속성을 검색 할 인스턴스 및 객체 참조 자체에 대한 ? (order_id 및 my_pizza는 nil로 유지됩니다.)