我想创建像a1,a2这样的变量名。
n.times { |n|
puts "enter number of rows and columns for #{n} array"
rows = gets.to_i
cols = gets.to_i
a+"#{n}" = Array.new(rows,'w') {Array.new(cols,'w')}
}
错误:
语法错误,意外的'=',期望'}'“ a#{n}” = Array.new(rows,'w'){Array.new(cols,'w')}
答案 0 :(得分:2)
虽然通常可以在Ruby中创建动态命名的局部变量,但这通常不是必需的,并且通常表示软件设计不佳。
相反,应该使用常规数据约束来保存数据。在您的情况下,您可以使用哈希,例如
arrays = {}
n.times do |n|
puts "enter number of rows and columns for #{n} array"
rows = gets.to_i
cols = gets.to_i
arrays["a#{n}"] = Array.new(rows,'w') {Array.new(cols,'w')}
end
然后,您可以访问arrays["a1"]
来访问已定义的数组,也可以访问arrays["a1"][1][3]
来访问嵌套数组中的特定单元格。