0
我正在寫一個方法,由於某種原因它拋出一個錯誤,每當我運行一個each
塊這樣的:Ruby'{x}'塊可以工作,但'do | x |'塊不?
array.each do |i|
something_on_i
end
但是,當我做同樣的事情,這樣它不是拋出一個錯誤:
array.each {|i| something_on_i}
爲什麼?我認爲這兩個是相同的。
下面是完整的代碼:
工作:
def factor(num)
i=2
factors=[1]
while i<=num
if (num % i == 0)
factors << i
end
i+=1
end
return factors
end
def Division(num1,num2)
facs1=factor(num1)
facs2=factor(num2)
common=[]
***facs2.each {|i| common << i if facs1.include?i}***
return common.max
end
# keep this function call here
# to see how to enter arguments in Ruby scroll down
Division(STDIN.gets)
不工作:
def factor(num)
i=2
factors=[1]
while i<=num
if (num % i == 0)
factors << i
end
i+=1
end
return factors
end
def Division(num1,num2)
facs1=factor(num1)
facs2=factor(num2)
common=[]
***facs2.each do |i|
if facs1.include?(i)
common << i
end
end***
return common.max
end
# keep this function call here
# to see how to enter arguments in Ruby scroll down
Division(STDIN.gets)
我得到的錯誤是:
(eval):334: (eval):334: compile error (SyntaxError)
(eval):323: syntax error, unexpected kDO_COND, expecting kEND
facs2.each do |i|
^
(eval):324: syntax error, unexpected tIDENTIFIER, expecting kDO or '{' or '('
(eval):334: syntax error, unexpected kEND, expecting $end
您的代碼對我的作品(當然省略這兩個***的)。 –
@LoganSerman有趣..你在本地運行嗎?它在Coderbyte和Repl.it(都是基於瀏覽器的)上都失敗了,所以我只是認爲它很糟糕。任何想法是怎麼回事? – tim5046
是的,我只是直接將它粘貼到IRB中,它可以正常工作。 –