gpt4 book ai didi

Ruby 动态变量名

转载 作者:数据小太阳 更新时间:2023-10-29 06:27:40 30 4
gpt4 key购买 nike

有什么方法可以在 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

我如何将 Game_# 中的# 更改为数字(Game_1、Game_2、...)

最佳答案

你可以用像这样的实例变量来做到这一点

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

但是你应该像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] # => {}
...

关于Ruby 动态变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16419767/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com