在另一个变量的名称中使用变量

Mac*_*ers 1 ruby erb

如何在另一个变量的名称中使用变量?说,我有很多像这样的数组:

g_OS = ['Mac', 'Linux', 'Win']
g_Mac = ['Lion', 'Tiger', 'Jaguar']
g_Linux = ['Slackware', 'RedHat', 'Caldera']
g_Win = [ .... ]
Run Code Online (Sandbox Code Playgroud)

如果我这样做:g_OS.each {|OS| puts "g_#{OS}[0]"},它将打印'g_Mac[0]''g_Linux'作为文字字符串.但我真正想要的是获得数组的第一个元素:g_Mac.我怎样才能做到这一点?

Ser*_*sev 6

通常,重新排列数据会更容易.例如,像这样.

g_OS = {
  'Mac' => ['Lion', 'Tiger', 'Jaguar'],
  'Linux' => ['Slackware', 'RedHat', 'Caldera'], 
  'Win' => ['Chicago', 'Daytona', 'Longhorn']
}

# list just the OSes

g_OS.keys # => ["Mac", "Linux", "Win"]

# only linuxes
g_OS['Linux'] # => ["Slackware", "RedHat", "Caldera"]
Run Code Online (Sandbox Code Playgroud)

虽然技术上可以完全按照你的要求做,但我建议你反对它(因此不会发布代码).你似乎是新人,所以你有很多东西需要学习.不要学习错误的方法.