"[5,-6ren">
gpt4 book ai didi

ruby - 使用 `p` 方法转义出现在数组中的字符,无需插值

转载 作者:太空宇宙 更新时间:2023-11-03 18:12:55 27 4
gpt4 key购买 nike

对于下面的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?为什么这种情况只发生在插值而不是在没有插值的情况下?

最佳答案

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)

对于第二个问题,p 方法就是这样工作的。准确地说,行为在 String#inspect 中定义。因为这就是 p 使用的方法:

Returns a printable version of str, surrounded by quote marks, with special characters escaped.

关于ruby - 使用 `p` 方法转义出现在数组中的字符,无需插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30959891/

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