gpt4 book ai didi

ruby Array.inspect 与 Array[element].to_s

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:26:30 26 4
gpt4 key购买 nike

我正在使用一个数组,我们称之为 books,复杂对象的数组,我们称之为 Book。问题是当我调用 puts "#{books.inspect}" 时,ruby 输出二进制流(不可读的 utf8 字符)。但是,当我调用 puts #{books[0].to_str}" 时,我得到了一个简短、漂亮的输出,描述了有问题的 book。不确定它是否是相关,但是 Book 是一个子类(我们可以称它为父类 Item),并且 books.length=1

Ruby暗示 .to_s.inspect 是同义词,但它们在实践中显然提供了不同的结果。有谁知道为什么会这样,您能否就如何从整个图书收藏中获得我想要的漂亮输出提供建议?

杂项信息:

[chk ~ ]$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]

最佳答案

class Myclass
def to_s
'my string representation'
end
def inspect
'my inspection'
end
end
a= [Myclass.new]
p a
puts a

outputs ::
[my inspection]
my string representation

为数组中的每个元素调用 inspect 方法。如果未定义该方法,您将获得默认的类表示。您只需要定义 inspect

你总是可以这样做:

def inspect
self.to_s
end

关于ruby Array.inspect 与 Array[element].to_s,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11567713/

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