gpt4 book ai didi

ruby - pry 检查方法不起作用

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

我从理解计算 一书中获得了以下代码。目的是改变 inspect 行为。

class Number < Struct.new(:value)
def inspect
"<<#{self}>>"
end
def to_s
value.to_s
end
end

当我使用 irb 时,它按预期工作:

irb(main):014:0> Number.new(1)
=> <<1>>

但是当我使用 pry 时它不会:

[8] pry(main)> n = Number.new(1)
=> #<struct Number value=1>

The Pry 是基于 Ruby 2.0.0 的 0.10.3 版本。为什么它不起作用?

最佳答案

Pry 不只是使用 inspect 来显示返回值。它调用在配置中定义的名为 print object 的过程。在lib/pry.rb中,你可以发现它被设置为:

class Pry
# The default print
DEFAULT_PRINT = proc do |output, value, _pry_|
_pry_.pager.open do |pager|
pager.print _pry_.config.output_prefix
Pry::ColorPrinter.pp(value, pager, Pry::Terminal.width! - 1)
end
end
end

为了像在irb 中一样使用inspect,按照指示这样设置它here :

Pry.config.print = proc {|output, value| output.puts "=> #{value.inspect}"}

然后你会得到:

pry(main)> n = Number.new(1)
=> <<1>>

关于ruby - pry 检查方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36663785/

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