類別 IRB::OutputMethod
irb 中 IO
的抽象輸出類別。這主要由 IRB::Notifier
內部使用。您可以定義自己的輸出方法,以搭配 Irb.new
或 Context.new
使用
公開實例方法
parse_printf_format(format, opts) 按一下以切換來源
如果在 printf
給定的 format
中有成功的 Regexp
比對,傳回一個陣列,包含要由 Kernel#sprintf
使用的給定 format
和 opts
% <flag> [#0- +] <minimum field width> (\*|\*[1-9][0-9]*\$|[1-9][0-9]*) <precision>.(\*|\*[1-9][0-9]*\$|[1-9][0-9]*|)? #<length modifier>(hh|h|l|ll|L|q|j|z|t) <conversion specifier>[diouxXeEfgGcsb%]
# File lib/irb/output-method.rb, line 48 def parse_printf_format(format, opts) return format, opts if $1.size % 2 == 1 end
pp(*objs) 按一下以切換來源
列印給定的 objs
,對每個呼叫 Object#inspect
。
請參閱 puts
以取得更多詳細資料。
# File lib/irb/output-method.rb, line 64 def pp(*objs) puts(*objs.collect{|obj| obj.inspect}) end
ppx(prefix, *objs) 按一下以切換來源
列印給定的 objs
,對每個呼叫 Object#inspect
,並附加給定的 prefix
。
請參閱 puts
以取得更多詳細資料。
# File lib/irb/output-method.rb, line 72 def ppx(prefix, *objs) puts(*objs.collect{|obj| prefix+obj.inspect}) end
print(*opts) 按一下以切換來源
開啟此方法以實作您自己的輸出方法,如果您未在自己的類別中定義 print
,則會引發 NotImplementedError
。
# File lib/irb/output-method.rb, line 20 def print(*opts) raise NotImplementedError, "print" end
printf(format, *opts) 按一下以切換來源
延伸 IO#printf
以使用 parse_printf_format
為 Kernel#sprintf
格式化指定的 opts
# File lib/irb/output-method.rb, line 31 def printf(format, *opts) if /(%*)%I/ =~ format format, opts = parse_printf_format(format, opts) end print sprintf(format, *opts) end
printn(*opts) 按一下以切換來源
列印指定的 opts
,並加上換行符號作為分隔符號。
# File lib/irb/output-method.rb, line 25 def printn(*opts) print opts.join(" "), "\n" end
puts(*objs) 按一下以切換來源
對指定的 objs
中的每個元素呼叫 print
,然後加上換行字元。
# File lib/irb/output-method.rb, line 54 def puts(*objs) for obj in objs print(*obj) print "\n" end end