我正在尝试创建一个简单的ruby脚本,通过简单搜索数字1-40来打开Bing中的一堆URL,但是当我在终端中运行时,我得到:
“未定义的方法”<' for nil:NilClass(NoMethodError)“
#!/usr/bin/ruby
num = 0
target = 40
while start < target do
open("http://www.bing.com/search?q=" + $num)
num += 1
end
(对不起,如果这是一个简单的错误,这是我的第一个ruby程序。)
更新:** 好的,谢谢你抓住它!
现在它给了我这个错误:
`+':无法将Fixnum转换为String(TypeError)
我如何合并这两个?是否有某种类型的解析器,如Java?
谢谢Arup和Mischa!
答案 0 :(得分:1)
只需执行以下操作即可修复代码:
while $num < $target do
open("http://www.bing.com/search?q=#{$num}")
$num += 1
end
您没有定义变量$start
的任何位置。我认为你应该使用$num
。我建议仅为此目的使用局部变量,例如num
,target
。不需要全局变量。
open("http://www.bing.com/search?q=" + $num)
也不会起作用。在您尝试使用字符串 concat 号时。使用#to_s
将数字转换为字符串,或使用字符串插值,如下所示。
没有全局变量写为:
while num < target do
open("http://www.bing.com/search?q=#{num}") # better
# or write as open( "http://www.bing.com/search?q=" + num.to_s )
num += 1
end