我在做Code Academy重构工厂:Less is More(Exercise 4)module。这里是该模块的说明:在代码学院停留在Ruby上
更少是更伟大的工作!这段代码看起来更好
但是,我们可以删除更多。回想一下,Ruby将隐含地返回 评估的最后一个表达式的值(即自动返回 )。在这个代码中有一个return语句,我们可以从显式变为隐式!
说明找到不必要的返回语句并将其删除。
提示:这是最后一个!这是因为如果输入不是一个正数,我们可能会返回早 ,除非 我们明确使用return关键字,否则我们不能提前返回。
我试图删除最后return
声明和其他每个人,我得到一个错误。任何人都可以提供建议吗?
$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)
return "n must be an integer." unless n.is_a? Integer
return "n must be greater than 0." if n <= 0
prime_array ||= []
prime = Prime.new
for num in (1..n)
prime_array.push(prime.next)
end
return prime_array
end
first_n_primes(10)
你是否删除了完整的最后一条语句或只是在语句中返回?前者不会工作。 – jtblin
'(1..n)'中的数字'根本不是惯用的Ruby。 '要求'素'; Prime.first(10)'是。 – steenslag
谢谢你,jtblin! – Roberto