新手问题 请教一下, ruby 下面 2 种写发有啥区别, 帮帮纠正思维.

501225658 · 2015年12月18日 · 最后由 lululau 回复于 2015年12月19日 · 2003 次阅读

请教一下, ruby 下面 2 种写发有啥区别, 用哪种好些. 想纠正一下 思维.

求指点 :)

# 只想想生成 5以下的数.
# 一种是套方法, 一种是end后面接着写.
def set_min_five
    self.num = rand(10)
    self.set_min_five if self.num > 5
  end

  def set_min_five
    begin
      self.num = rand(10)
    end while self.num > 5
  end

第一种是递归,性能低一点

怎么不写 rand(5)

@rei 我只是想探讨下 if 和 while 这 2 种 ruby 写法问题. 理解 while 半天 就像 unless 没有 if 好理解一样.

if 和 while 本身没有太大的区别。无非是写得好看难看点。(ruby 我记得是推荐 loop+if 跳出的)

你这里的区别在于循环与递归。

第一种可能会 stack level too deep 吧

需要 登录 后方可回复, 如果你还没有账号请 注册新账号