从字符串创建结构?

时间:2013-12-19 02:55:29

标签: ruby struct

我需要创建一个包含多个字段的Struct(基于长字符串)。 以下是我到目前为止的情况:

s = "a1|b2|c3|"
a = s.split("|")
b = []
a.each { |e| 
  b.push(e.to_sym)
}

Str = Struct.new(*b)

无论如何要缩短它?

2 个答案:

答案 0 :(得分:2)

这是:

Str = Struct.new(*"a1|b2|c3|".split("|").map(&:to_sym))

答案 1 :(得分:1)

模式b = []; a.each {|e| b << (do something with e) }始终可以缩短为使用map。所以:

s = "a1|b2|c3"
b = s.split('|').map {|e| e.to_sym }

或者,甚至更简洁:

s = "a1|b2|c3"
b = s.split('|').map(&:to_sym)