gpt4 book ai didi

Ruby:为什么所有坐标都在数组数组中更新?

转载 作者:数据小太阳 更新时间:2023-10-29 08:21:51 25 4
gpt4 key购买 nike

我正在尝试更改特定坐标,但数组正在全部更新。

目标是将 fixed 属性更改为单个坐标。

class Case
attr_accessor :fixed

def initialize
self.fixed = false
end

def fixed?
!!fixed
end
end

def display(arr)
5.times do |x|
5.times do |y|
print arr[x][y].fixed?
print ' '
end

puts
end
end

# Defining array
arr = Array.new(5){ Array.new(5, Case.new) }

# Displaying the arrays
display(arr)

# Changing value of a single coord
arr[2][3].fixed = true

# Displaying the arrays
display(arr)

这是第一次显示调用的结果

false false false false false 
false false false false false
false false false false false
false false false false false
false false false false false

和第二个显示器

false false false false false 
false false false false false
true true true true true
false false false false false
false false false false false

预期的结果是:

false false false false false 
false false false false false
false false false true false
false false false false false
false false false false false

最佳答案

问题是您将同一个实例多次放置在行中。要使数组中的每个项目成为一个新对象,请将数组定义更改为以下内容:

arr = Array.new(5){ Array.new(5) {Case.new}   }

有关更多信息,请参阅此问题:How to create array of objects?

关于Ruby:为什么所有坐标都在数组数组中更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57188180/

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