Как я могу передать результаты метода другому методу в ruby? например:
class D
def initialize(text)
@text = text
end
def a s
"hello #{s}"
end
def b s
"hi #{s}"
end
end
Итак, что я хочу сделать, это передать вывод метода a методу b. Итак, по существу (если методы не находятся внутри класса) я могу сделать следующее:
puts b(a "Tom") #=>hi hello Tom
Однако, даже если это не внутри класса, было бы не очень хорошо, если бы было много методов, поэтому должен быть более элегантный способ сделать это. Так как же правильно получить вывод hi hello Tom
, применив методы a и b к экземпляру класса D?
ОБНОВЛЕНИЕ Я просто хотел сделать это немного более ясным. Например, в F# вы можете сделать что-то вроде этого:
let a s = "hello " + s
let b s = "hi " + s
"Tom" |> a |> b #=> hello hi Tom
Здесь мы определили функции a и b, а затем передали результаты следующей функции. Я знаю, что это функциональный язык, поэтому способы ведения дел там будут другими. Но мне просто интересно, есть ли такие трюки в Ruby?
puts b a 'Tom'
, но я сомневаюсь, что это «более элегантно». - person Aleksei Matiushkin   schedule 23.11.2016