我在下面的代码中遇到了这个语法错误,我不明白为什么 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") )

关于ruby - 语法错误,意外的 ':' ,期待 ')',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19776768/

10-12 21:23