gpt4 book ai didi

ruby - 添加的实例变量未在 Ruby 中使用 inspect 显示

转载 作者:太空宇宙 更新时间:2023-11-03 18:13:57 25 4
gpt4 key购买 nike

Inspect 将告诉对象表示。所以我尝试了这个:

animal = "cat"
animal.instance_variable_set(:@a, "dog")
p "inspect object animal: #{animal.inspect}"

但是 inspect 只给了我“cat”,我看不到@a="dog"

如果我这样做:

puts "instance variables are: #{animal.instance_variables}"

然后我可以看到 [:@a] 作为输出

为什么 inspect 没有给我所有的东西?

谢谢

最佳答案

String 覆盖 #inspect ( String#inspect ) 以返回用引号引起来的原始字符串,而不是 Object#inspect ,它会转储所有内容。

不过,您不需要重新定义 String#inspect 来说明您的特殊用例。如果你想让你的字符串有一些额外的数据,你应该创建你自己的类:

class Animal
def initialize(name, other)
@name = name
@other = other
end
end

Animal.new("cat", "dog")
# #<Animal:0x007faf9404d828 @name="cat", @other="dog">

关于ruby - 添加的实例变量未在 Ruby 中使用 inspect 显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29241276/

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