Ruby:要哈希的数组,没有任何局部变量

var*_*tis 2 ruby enumerable

我有一个字符串数组.

array = ["foo","bar","baz"]
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其转换为以下内容:

{"foo"=>nil, "bar"=>nil, "baz" => nil}
Run Code Online (Sandbox Code Playgroud)

我一直用以下方法做到这一点:

new_hash = {}
array.each { |k| new_hash[k] = nil }
new_hash
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何方法可以在单行/没有任何实例变量的情况下完成此任务.

Ste*_*fan 12

这可行:

new_hash = Hash[array.zip]
# => {"foo"=>nil, "bar"=>nil, "baz"=>nil}
Run Code Online (Sandbox Code Playgroud)
  • array.zip 回报 [["foo"], ["bar"], ["baz"]]
  • Hash::[] 从这些键创建一个哈希