加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby字符串到哈希值

发布时间:2020-12-17 01:43:27 所属栏目:百科 来源:网络整理
导读:我刚开始学习 Ruby! 我有以下字符串: "Mark Smith,29" 我想将它转换为哈希,所以它看起来像这样: {:name="Mark",:surname="Smith",:age=29} 我编写了以下代码,以减少输入: a1 = string.scan(/w+|d+/) 现在我有一个字符串数组.是否有一种优雅的方式将其
我刚开始学习 Ruby!

我有以下字符串:

"Mark Smith,29"

我想将它转换为哈希,所以它看起来像这样:

{:name=>"Mark",:surname=>"Smith",:age=>29}

我编写了以下代码,以减少输入:

a1 = string.scan(/w+|d+/)

现在我有一个字符串数组.是否有一种优雅的方式将其转换为哈希?我知道我可以做三次这样的迭代:

pers = Hash.new
pers[:name] = a1[0]
pers[:surname] = a1[1]
pers[:age] = a1[2]

但也许有一种方法可以使用.each方法或类似的方法来做到这一点?或者也许可以使用预定义的键(:name,:surname,:age)定义类Person,然后将我的字符串“抛出”到此类的实例中?

解决方法

是的,你可以这样做,

%i(name surname age)
   .zip(string.scan(/w+|d+/))
   .to_h
# => {:name=>"Mark",:age=>"29"}

或者,您可以享受Struct的好处,例如:

Person = Struct.new(:name,:surname,:age )
person = Person.new( *string.scan(/w+|d+/) )
person.age  # => "29"
person.name # => "Mark"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读