我不知道这是否真的是好的 ruby 代码,但我想做的是将一个 String 分成两个单独的部分,并将这两个部分作为两个特定键的值。例如:
name_a = "Henry Fillenger".split(/\s+/,2)
name = {:first_name => name_a[0], :last_name => name_a[1]}
我想知道这是否可以通过一些 ruby 魔法在一行中完成。
最佳答案
您可以使用Hash[]
和zip
这样做:
name = Hash[ [:first_name, :last_name].zip("Henry Fillenger".split(/\s+/,2)) ]
但是我会说您的版本更具可读性。并非所有内容都必须在一条线上。
关于Ruby 将 String 拆分为两部分并放入带有预定义键的散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6658675/