代码学院Ruby类中重构工厂第2部分中的条件赋值运算符问题

代码学院Ruby类中重构工厂第2部分中的条件赋值运算符问题,ruby,refactoring,conditional,Ruby,Refactoring,Conditional,我得到了以下重构代码: $VERBOSE = nil # We'll explain this at the end of the lesson. require 'prime' # This is a module. We'll cover these soon! def first_n_primes(n) unless n.is_a? Integer return "n must be an integer." end if n <= 0 r

我得到了以下重构代码:

$VERBOSE = nil    # We'll explain this at the end of the lesson.
require 'prime'   # This is a module. We'll cover these soon!

def first_n_primes(n)

  unless n.is_a? Integer
    return "n must be an integer."
  end

  if n <= 0
    return "n must be greater than 0."
  end

  prime_array = [] if prime_array.nil?

  prime = Prime.new
  for num in (1..n)
    prime_array.push(prime.next)
  end
  return prime_array
end

first_n_primes(10)
$VERBOSE=nil#我们将在本课结束时对此进行解释。
需要“素数”#这是一个模块。我们很快就会报道的!
def first_n_素数(n)
除非n.U是a?整数
return“n必须是整数。”
结束

如果n您在第14行的
[]
后面放置了一个空白字符。。。 有了现在的空间,它对我也不起作用,没有空间,它就起作用了

所以这不是你的错,是他们的错。

$VERBOSE=nil#我们将在本课结束时对此进行解释。
需要“素数”#这是一个模块。我们很快就会报道的!
def first_n_素数(n)
除非n.U是a?整数
return“n必须是整数。”
结束

如果n谢谢,它现在编译正确了!对他们来说,这是一个多么令人困惑的错误啊。我希望我有足够的声望点数来投票给你,但希望其他人会。还有,有人能解释为什么我被否决了吗。我确实试图找到一个相同的问题,但没有找到。如果有人给我这样一个问题的链接,我很乐意道歉。没问题,谢谢你接受了答案。这里的大多数人要么对社区的水平很有兴趣,要么很势利。很容易被否决,例如,在提问者阅读正确答案之前,就被另一个人删除了正确答案。我认为改变整个社区是不可能的,所以我正在花时间去了解这个地方到底是怎么回事。关于您的问题:或者有人认为它适合其他堆栈交换站点,认为询问代码学院更合适(因为您没有犯错误,并且您的代码是可解释的)或者只是不喜欢。是的,回想起来,我应该先咨询代码学院论坛,因为他们已经回答了这个问题,所以我可以看看他们是否从这个角度出发。您是否可以添加一个解释?我们可以使用条件赋值将素数数组设置为[],而不必麻烦使用.nil?检查。
$VERBOSE = nil    # We'll explain this at the end of the lesson.
require 'prime'   # This is a module. We'll cover these soon!

def first_n_primes(n)

  unless n.is_a? Integer
    return "n must be an integer."
  end

  if n <= 0
    return "n must be greater than 0."
  end

  prime_array ||= [] 

  prime = Prime.new
  for num in (1..n)
    prime_array.push(prime.next)
  end
  return prime_array
end

first_n_primes(10)