【问题标题】:Are return statements bad in Ruby?Ruby 中的 return 语句不好吗?
【发布时间】:2011-07-14 21:38:41
【问题描述】:

return 关键字在 ruby​​ 中是可选的,因此对于只有一个退出点的函数,“返回结果”可以安全地替换为简单的“结果”。

对于何时执行此操作是否有任何特定于 Ruby 的指南?

我倾向于尽可能避免使用 return 关键字,因为它们在 procs 中的行为不守规矩。

【问题讨论】:

    标签: ruby return


    【解决方案1】:

    ruby​​ 中的“return”仅在您尝试返回多个值时使用。例如

    return val1, val2
    

    或者如果从函数中提前返回是有意义的,例如

    #check if needed param is set
    return if !param
    
    #some operations which need param
    

    这比使用级联 if 语句弄乱代码更容易。

    结论:每次使用 return 可以简化您的代码或使其更易于理解。

    【讨论】:

    • 您确定第一点吗? 定义乐趣; [val1,val2];结束第二个就ok了。
    • 是的。如果您将多个值作为数组返回(如您所述),您将无法接收带有 val1,val2=fun 的值。你必须做 ret=fun; val1=ret[0]; val2=ret[1] 达到同样的效果。
    • 抱歉坚持,但不管是否使用return,你都在返回一个数组(稍后你可以解压)def fun; [1, 2];结尾; a, b = 有趣; "a=#{a}, b=#{b}" #=> "a=1, b=2"
    • 好的。那么这是否意味着我应该在所有其他情况下放弃退货?例如 "def f; result=0; #some-complex-code; result;"而不是“...返回结果;”?
    • @k_wave 数组不是用 return v1,v2 隐式创建的吗?
    猜你喜欢
    • 1970-01-01
    • 2021-11-18
    • 2021-02-09
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 2011-04-12
    • 2015-05-02
    • 2014-02-02
    相关资源
    最近更新 更多