对于下面的overflow
,引号围绕一个数组。
overflow = [5,6,7]
p overflow #=> [5, 6, 7]
p "#{overflow}" #=> "[5, 6, 7]"
对于下面的stack
,插值表达式的结果很奇怪。
stack = 1234.to_s.chars.reverse.each_slice(3).map { |s| s.reverse.join }.reverse
p stack #=> ["1", "234"]
p "#{stack}" #=> "[\"1\", \"234\"]"
p
方法如何使用stack
显示转义字符,而不是overflow
?为什么只有插值而不是没有插值打印时才会出现这种情况?
答案 0 :(得分:3)
product_id
是一个整数数组,而overflow
是一个字符串数组。 stack
中没有任何东西可以逃脱。
可能你打算让overflow
成为stack
的数组,在这种情况下,在方法链的末尾添加Fxinum
:
.map(&:to_i)
对于第二个问题,方法stack = 1234.to_s.chars.reverse.each_slice(3).map { |s| s.reverse.join }.reverse.map(&:to_i)
的工作方式。准确地说,行为在String#inspect
中定义为p
正在使用的方法:
返回str的可打印版本,由引号括起,并转义特殊字符。