【发布时间】:2016-11-23 13:07:36
【问题描述】:
如何将一个方法的结果传递给 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
然而,即使这不在一个类中,如果有很多方法,它也不会好看,所以必须有一个更优雅的方法来做到这一点。那么通过将方法 a 和 b 应用于 D 类的实例来获得输出 hi hello Tom 的正确方法是什么?
更新 我只是想让它更清楚一点。例如,在 F# 中,您可以执行以下操作:
let a s = "hello " + s
let b s = "hi " + s
"Tom" |> a |> b #=> hello hi Tom
这里我们定义了函数 a 和 b,然后将结果传递给下一个函数。 我知道它是一种函数式语言,所以那里的做事方式会有所不同。但是我只是想知道Ruby中是否有任何此类技巧?
【问题讨论】:
-
“所以必须有一种更优雅的方式来做到这一点”——这是为什么呢?有人可能会使用
puts b a 'Tom',但我怀疑它“更优雅”。 -
@mudasobwa 我明白了。我刚刚更新了这个问题,让它更清楚一点。也许会有所帮助? :)
-
问题仍然存在:为什么你认为 F# 的方式更优雅?