ruby - 将字符串转换为哈希

标签 ruby hash

我想知道是否有更好的方法将字符串转换为哈希。 我的字符串在结构方面总是看起来完全一样。 这是一个例子:

string = "range:12\ntype:default\n"

@settings = Hash[
  *string.downcase
  .split("\n")
  .map{|s| [s.split(":")[0].to_sym, s.split(":")[1]]}
  .flatten
]

p @settings
# => {:range=>"12", :type=>"default"}

这是它应该做的,我对此没有任何问题。 但它非常不可读,我希望我的代码有一些重构选项。

最佳答案

Hash[*string.split(/[:\n]/)]
# => {"range"=>"12", "type"=>"default"} 

关于ruby - 将字符串转换为哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25721894/

相关文章:

ruby - 如何在 linux (ubuntu) 上更新 ruby​​?

Ruby 哈希 - 使用在哈希中创建的元素创建元素

php - 相同字符串的 base64_encode() 值是否不同?

jquery - 空白 href 的 # 井号哈希标签的替代方案?

ruby-on-rails - Shoulda/RSpec 匹配器 - 条件验证

javascript - Rails 4 - JavaScript 停止工作,获取 : undefined is not a function

ruby-on-rails - Rails 和 OS X : How to install rmagick?

ruby - 为什么这个代码片段在应该返回 "true"时输出 "false"?

php - PHP中Array和Hash有什么区别?

javascript - 将哈希过滤器传递给外部链接(类似于同位素,但自定义)