Ruby的递归调用自己的函数作为参数
问题描述:
如何在Ruby中将多次函数作为参数反复调用的“多次递归函数”?Ruby的递归调用自己的函数作为参数
由此,我不是指像fibonacci sequence这样的通常的递归函数。假设我有一个叫做hey()
的函数。它在函数中调用函数的次数为字符串"Hey"
。澄清:
hey() #=> "Hey "
hey(hey()) #=> "Hey Hey "
hey(hey(hey())) #=> "Hey Hey Hey "
我试图
def hey(*args)
"Hey "
end
def hey(*args)
"Hey " + hey(*args)
end
def hey(n)
"Hey " + hey(n)
end
我从来没有见过任何像这样的例子了。我知道这是可行的,但不知道如何。需要* args
吗?我是否需要通过定期参数而不是*args
?
答
这是你在找什么?
def hey(str="")
"Hey " + str
end
p hey(hey(hey())) # "Hey Hey Hey "