在Ruby中使用Hash时除外
d = {}
d["a"]=1234
d["b"]=34
d["c"]=3
d.except(:b,:c)
Run Code Online (Sandbox Code Playgroud)
我得到NoMethodError:
NoMethodError: undefined method `except' for {"a"=>1234, "b"=>34, "c"=>3}:Hash from (irb):6 from
/Users/niranjan/.rvm/rubies/ruby-1.9.3-p551/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
except是一个Rails方法(确切地说是ActiveSupport).在Rails控制台中执行时,您的代码不会重现该错误:
> d = {}
# => {}
> d["a"]=1234
# => 1234
> d["b"]=34
# => 34
> d["c"]=3
# => 3
> d.except(:b,:c)
# => {"a"=>1234, "b"=>34, "c"=>3}
Run Code Online (Sandbox Code Playgroud)