红宝石代码,如下所示的代码错误是什么?

时间:2019-12-09 23:58:44

标签: ruby-on-rails-3

我收到的错误消息: #

的未定义局部变量或方法rev

数字方法的if / else语句有什么问题? 谢谢您的帮助

这是我的代码:

def alphabetize(arr, rev=false)
  if rev
    arr.sort!{|item1, item2| item2<=>item1}
  else
    arr.sort!{|item1, item2| item1<=>item2}
  end
end

puts Array

numbers=[10, 12, 35, 17]
numbers.sort!
if rev == true
  numbers.reverse! {|item1, item2, item3, item4|}
else
  rev == false
  puts numbers
end

1 个答案:

答案 0 :(得分:0)

我看到您正在定义alphabetize,但是您没有在调用它。 您出现“未定义的局部变量或方法rev”的错误是因为您未在控制台中设置rev

def alphabetize(arr, rev=false)
  if rev
    arr.sort!{|item1, item2| item2<=>item1}
  else
    arr.sort!{|item1, item2| item1<=>item2}
  end
end

numbers=[10, 12, 35, 17]
alphabetize(numbers, false) # [10, 12, 17, 35]
alphabetize(numbers, true)  # [35, 17, 12, 10]

现在第二部分您可以像这样

numbers=[10, 12, 35, 17]
rev = true # you are missing this line 
if rev == true
  numbers.reverse! {|item1, item2, item3, item4|}
else
  rev == false
  puts numbers
end