我用下面的代码遇到了这个语法错误,我无法弄清楚为什么
ruby会抱怨它.
def user_list server = Lumberg::Whm::Server.new( host: "localhost", hash: IO.read("/root/.accesshash") ) results = server.account.list accounts = result[:params][:acct].map {|a| a["user"] } end end
语法错误如下:
# bundle exec bin/userscan bin/userscan:3:in `require': /usr/src/userscan/lib/userscan.rb:131: syntax error, unexpected ':', expecting ')' (SyntaxError) host: "localhost", ^ /usr/src/userscan/lib/userscan.rb:131: syntax error, unexpected ',', expecting kEND /usr/src/userscan/lib/userscan.rb:133: syntax error, unexpected ')', expecting kEND from bin/userscan:3
据我所知,它抱怨的部分应该没问题.显然,分号实际上应该在那里,括号应该包含两条线的全部.我已经玩了一下,但我只是让它变得更糟而不是更好.
任何有关我在这里搞乱的帮助将不胜感激.
语法host:“..”是ruby 1.9的新功能.如果您使用的是ruby 1.8,则必须使用旧语法:server = Lumberg::Whm::Server.new( :host => "localhost", :hash => IO.read("/root/.accesshash") )
精彩评论