有没有办法用Ruby在动态名称中创建变量?
我正在读一个文件,当我找到一个字符串时,生成一个哈希.
例如
file = File.new("games.log", "r")
file.lines do |l|
l.split do |p|
if p[1] == "InitGame"
Game_# = Hash.new
end
end
end
Run Code Online (Sandbox Code Playgroud)
如何将Game_#中的#更改为数字(Game_1,Game_2,...)
saw*_*awa 38
您可以使用实例变量来完成
i = 0
file.lines do |l|
l.split do |p|
if p[1] == "InitGame"
instance_variable_set("@Game_#{i += 1}", Hash.new)
end
end
end
Run Code Online (Sandbox Code Playgroud)
但你应该使用一个数组作为viraptor说.由于您似乎只有一个新的哈希作为值,因此它可以很简单
i = 0
file.lines do |l|
l.split do |p|
if p[1] == "InitGame"
i += 1
end
end
end
Games = Array.new(i){{}}
Games[0] # => {}
Games[1] # => {}
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21535 次 |
| 最近记录: |