RUBY 将数组推入数组会覆盖所有以前的元素吗?
RUBY Pushing array into array overwrites all previous elements?
此函数读取文件并将数据插入多维数组,但似乎每次将 temp 推入 $table 时,它都会完全覆盖 $table 中的每个元素与温度有关。
def self.read_file
i = 0
j = 0
$table = []
$n = 0
temp = []
first_line = true
IO.foreach("data.dat") do |line|
data = line.split
if first_line
$n = data[0].to_i
first_line = false
puts('Read first line')
puts $n
else
while (j < $n)
temp[j] = data[j].to_i
j = j + 1
end
$table << temp
i = i + 1
j = 0
end
p $table
end
end
任何人都可以解释这种行为并帮助我调试它吗?
我已经编辑了你的方法。它应该工作。
def self.read_file
i = 0
j = 0
table = []
n = 0
first_line = true
IO.foreach("data.dat") do |line|
temp=[]
data = line.split
if first_line
n = data[0].to_i
first_line = false
puts('Read first line')
puts n
else
while (j < n)
temp[j] = data[j].to_i
j = j + 1
end
table << temp
i = i + 1
j = 0
end
p table
end
end
此函数读取文件并将数据插入多维数组,但似乎每次将 temp 推入 $table 时,它都会完全覆盖 $table 中的每个元素与温度有关。
def self.read_file
i = 0
j = 0
$table = []
$n = 0
temp = []
first_line = true
IO.foreach("data.dat") do |line|
data = line.split
if first_line
$n = data[0].to_i
first_line = false
puts('Read first line')
puts $n
else
while (j < $n)
temp[j] = data[j].to_i
j = j + 1
end
$table << temp
i = i + 1
j = 0
end
p $table
end
end
任何人都可以解释这种行为并帮助我调试它吗?
我已经编辑了你的方法。它应该工作。
def self.read_file
i = 0
j = 0
table = []
n = 0
first_line = true
IO.foreach("data.dat") do |line|
temp=[]
data = line.split
if first_line
n = data[0].to_i
first_line = false
puts('Read first line')
puts n
else
while (j < n)
temp[j] = data[j].to_i
j = j + 1
end
table << temp
i = i + 1
j = 0
end
p table
end
end