从哈希中删除键值对 (RUBY)

Tom*_*s.R 0 ruby ruby-hash

movies = {
  StarWars: 4.8, 
  Divergent: 4.7
  }

print movies
Run Code Online (Sandbox Code Playgroud)

此代码返回一个哈希值:

{:StarWars=>4.8, :Divergent=>4.7}
Run Code Online (Sandbox Code Playgroud)

当我尝试删除键值对并再次打印电影时:

movies = {
  StarWars: 4.8, 
  Divergent: 4.7
  }


movies = movies.delete("Divergent".to_sym)
print movies

 
Run Code Online (Sandbox Code Playgroud)

我得到:

4.7
Run Code Online (Sandbox Code Playgroud)

如何删除键值对,以便在我要求打印电影哈希的内容后得到:

{:StarWars=>4.8}
Run Code Online (Sandbox Code Playgroud)

eux*_*eux 7

Hash#delete返回提供的键的值,movies.delete("Divergent".to_sym)返回4.7,然后将其重新分配给movies,现在movies4.7

所以你可以delete不重新分配:

movies.delete("Divergent".to_sym)
print movies # => {:StarWars=>4.8}
Run Code Online (Sandbox Code Playgroud)