【问题标题】:Ruby recursion calling its own function as argumentRuby 递归调用它自己的函数作为参数
【发布时间】:2016-12-06 21:16:04
【问题描述】:

如何在 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

【问题讨论】:

    标签: ruby function recursion


    【解决方案1】:

    这就是你要找的吗?

    def hey(str="")
      "Hey " + str
    end
    
    p hey(hey(hey())) # "Hey Hey Hey "
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-28
      • 2021-12-27
      • 2016-04-05
      • 1970-01-01
      • 2015-01-09
      • 1970-01-01
      • 2015-08-14
      • 2019-10-04
      相关资源
      最近更新 更多