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)
但是我会说你的版本更具可读性.并非一切都必须在一条线上.
还有两行,但在我看来,可读性略高一些,
first_name, last_name = "Henry Fillenger".split(/\s+/,2)
name = {:first_name => first_name, :last_name => last_name}
Run Code Online (Sandbox Code Playgroud)