gpt4 book ai didi

ruby - 从数组中的对象中删除实例变量

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

我是 Ruby 的新手,我只是想尝试一些想法,我想做的是从我创建的 country_array 中删除 @continent 数据。进行了大量搜索,可以找到很多关于完全删除元素的信息,但找不到如何专门删除@continent 数据。由于我是新手,请保持任何答案都相当简单,但非常感谢任何帮助。

class World
include Enumerable
include Comparable

attr_accessor :continent
def <=> (sorted)
@length = other.continent
end

def initialize(country, continent)
@country = country
@continent = continent
end
end

a = World.new("Spain", "Europe")
b = World.new("India", "Asia")
c = World.new("Argentina", "South America")
d = World.new("Japan", "Asia")

country_array = [a, b, c, d]

puts country_array.inspect

[#<World:0x100169148 @continent="Europe", @country="Spain">,
#<World:0x1001690d0 @continent="Asia", @country="India">,
#<World:0x100169058 @continent="South America", @country="Argentina">,
#<World:0x100168fe0 @continent="Asia", @country="Japan">]

最佳答案

您可以使用remove_instance_variable。但是,由于它是一个私有(private)方法,您需要重新打开您的类并添加一个新方法来执行此操作:

class World
def remove_country
remove_instance_variable(:@country)
end
end

然后你可以这样做:

country_array.each { |item| item.remove_country }
# => [#<World:0x7f5e41e07d00 @country="Spain">,
#<World:0x7f5e41e01450 @country="India">,
#<World:0x7f5e41df5100 @country="Argentina">,
#<World:0x7f5e41dedd10 @country="Japan">]

关于ruby - 从数组中的对象中删除实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7177469/

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