我需要创建一个包含多个字段的Struct(基于长字符串)。 以下是我到目前为止的情况:
s = "a1|b2|c3|"
a = s.split("|")
b = []
a.each { |e|
b.push(e.to_sym)
}
Str = Struct.new(*b)
无论如何要缩短它?
答案 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)