gpt4 book ai didi

ruby - 如何打印 ruby​​ 对象的实例变量

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

class Packet
def initialize(name, age, number, array)
@name = name
@age = age
@number = number
@neighbors = array
end
end

p1 = Packet.new("n1", 5, 2, [1,2,3,4])

puts p1.name

我有上面的代码,但是每当我执行 puts 语句时,我都会收到 name is not a method 的错误。

我不知道任何其他方式来打印 p1 的名称。

如何打印姓名?

最佳答案

这里的问题是,虽然您拥有实例变量,但您并未使它们可访问。 attr_reader :variable_name 可以让您读取它们,attr_writer :variable_name 可以让您编写它们,而 attr_accessor :variable_name 可以让您两者兼顾。这些是 Ruby 标准库中内置的元编程快捷方式,因此您不必自己编写方法来读取或写入变量。它们带有一个符号,即实例变量名。

class Packet
attr_reader :name, :age, :number, :array
def initialize(name, age, number, array)
@name = name
@age = age
@number = number
@neighbors = array
end
end

p1 = Packet.new("n1", 5, 2, [1,2,3,4])

puts p1.name

关于ruby - 如何打印 ruby​​ 对象的实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27393128/

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