Ruby将String拆分为两个部分,并使用预定义的键放入哈希

Cra*_*aig 7 ruby string hash split

我不知道这是否真的是好的ruby代码,但我想要做的是将一个String分成两个独立的部分,并将两个值作为两个特定键的值.例如:

  name_a = "Henry Fillenger".split(/\s+/,2)
  name = {:first_name => name_a[0], :last_name => name_a[1]}
Run Code Online (Sandbox Code Playgroud)

我想知道这是否可以通过一些红宝石魔法在一行中完成.

sep*_*p2k 19

您可以使用Hash[]zip执行此操作:

name = Hash[ [:first_name, :last_name].zip("Henry Fillenger".split(/\s+/,2)) ]
Run Code Online (Sandbox Code Playgroud)

但是我会说你的版本更具可读性.并非一切都必须在一条线上.


Ray*_*ter 7

还有两行,但在我看来,可读性略高一些,

first_name, last_name = "Henry Fillenger".split(/\s+/,2)
name = {:first_name => first_name, :last_name => last_name}
Run Code Online (Sandbox Code Playgroud)