我觉得我在这里忽略了一些东西。当我尝试使用Hash.key(keytolookfor)方法时,我收到错误。
此方法是否已弃用?
pete@Vader:~/tmp$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-linux]
pete@Vader:~/tmp$ ./hashtest.rb
./hashtest.rb:8: undefined method `key' for {"firstkey"=>"firstvalue", "secondkey"=>"secondvalue"}:Hash (NoMethodError)
pete@Vader:~/tmp$
脚本如下。
#!/usr/bin/ruby
testHash = Hash.new
testHash["firstkey"] = "firstvalue"
testHash["secondkey"] = "secondvalue"
if testHash.has_value?("secondvalue")
keyvalue = testHash.key("secondvalue")
puts "match found with key #{keyvalue}"
else
puts "no match found"
end
答案 0 :(得分:2)
我猜测你的系统ruby /usr/bin/ruby
是1.8.7,它没有Hash#key
方法。 ruby -v
最有可能显示位于rvm
的{{1}}版本,但脚本中的第一行会调用~/.rvm/...
。
答案 1 :(得分:0)