【发布时间】:2012-04-07 08:17:56
【问题描述】:
我不明白 print 和 puts 的行为? 我知道 print 不会换行,但 puts 可以。 但是为什么 print 的输出会在使用 puts 而不是 print 时从符号变为字符串?
`$ ruby -e 'print Kernel.private_instance_methods(false)'
[:initialize_copy, :remove_instance_variable, :sprintf, :format, :Integer, :Float, :String, :Array, :warn, :raise, :fail, :global_variables, :__method__, :__callee__, :eval, :local_variables, :iterator?, :block_given?, :catch, :throw, :loop, :caller, :trace_var`
$ ruby -e 'puts Kernel.private_instance_methods(false)'
initialize_copy
remove_instance_variable
sprintf
format
Integer
Float
String
Array
warn
raise
fail
global_variables
__method__
__callee__
eval
local_variables
【问题讨论】:
-
print s的行为更像puts s.inspect。putsArray将在新行上显示每个数组元素。至少我是这么认为的。 -
@Zabba
p()是一种将obj.inspect写入标准输出的内核方法。不打印。 -
@Kit Ho:我没有看到 puts ant print 与符号一起工作的区别。可能你的意思是方法
p()? pastie.org/3743547