Может ли метод вернуть несколько значений?
чт, 02/08/2007 - 20:11 — spine
И да, и нет.
def m1
return 1, 2, 3
end
def m2
return [1, 2, 3]
end
p m1 #=> [1, 2, 3]
p m2 #=> [1, 2, 3]
Таким образом, возвращается только что-то одно, но это может быть сколь угодно сложный объект. В случае с массивами можно использовать множественное (параллельное) присваивание, чтобы достичь эффекта множественных значений, возвращаемых методом:
def foo
return 20, 4, 17
end
a, b, c = foo
puts a #=> 20
puts b #=> 4
puts c #=> 17
