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

501225658 · December 18, 2015 · Last by lululau replied at December 19, 2015 · 2034 hits

请教一下,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 吧

You need to Sign in before reply, if you don't have an account, please Sign up first.