require 'open-uri'
print "Enter a URL"
add = gets
open(#{add}) do |f|
j = f.read.scan(/<img/)
jlen = j.length
puts jlen
end
是我有的代碼。 由於某種原因,紅寶石給我的錯誤:findimages.rb:8: syntax error, unexpected kEND, expecting $end
這是爲什麼?
require 'open-uri'
print "Enter a URL"
add = gets
open(#{add}) do |f|
j = f.read.scan(/<img/)
jlen = j.length
puts jlen
end
是我有的代碼。 由於某種原因,紅寶石給我的錯誤:findimages.rb:8: syntax error, unexpected kEND, expecting $end
這是爲什麼?
#{}
僅適用於內插字符串。使用open(add)
(或完全正確,但完全不必要open("#{add}")
)。
在此行中:
open(#{add}) do |f|
您正在嘗試使用#{}
一個變量內插成一個字符串,而是一個字符串之外。 #
被解釋爲評論的開始,並且該行的其餘部分被視爲評論。
您可以直接在這裏直接使用add
,不需要任何字符串插值。
我確實發現詞法分析器尋找'$ end'而不是一個正確的paren有點奇怪。 – Phrogz 2012-04-09 19:20:02
@Progro當我用一個類似的程序測試了這個,我得到了一個關於缺少的paren的錯誤,以及關於'$ end'的錯誤。我假設第一個錯誤讓解析器感到困惑,所以第二個錯誤是虛假的。 – 2012-04-09 23:20:38
這個錯誤意味着「我正在瀏覽你的源代碼,我期望看到文件的結尾,但我發現了一個'end'。」 – Phrogz 2012-04-09 19:08:20