to_s 方法返回不需要的“\”
to_s method returning an unwanted "\"
我写了一个方法,它接受一个数字数组,将数字 2 添加到它,然后 returns 一个字符串数组。
def add_two(array)
new_array = array.map{|x| "#{x} + 2 = #{x + 2}"}
new_array.to_s
end
以下为测试结果:
我的 return 中有一个不需要的 \
。我想弄清楚 \
是从哪里来的。有人能指出我正确的方向吗?
它没有添加额外的 \
s。 \
是用于转义 "
的转义字符,它是结果字符串的一部分。这里:
a = add_two(array)
# => "[\"1 + 2 = 3\", \"2 + 2 = 4\", \"3 + 2 = 5\"]"
puts a
# ["1 + 2 = 3", "2 + 2 = 4", "3 + 2 = 5"]
或直接:
puts add_two(array)
# ["1 + 2 = 3", "2 + 2 = 4", "3 + 2 = 5"]
它来自您最后的 to_s
。您正在将字符串数组(可能已经是您想要的)转换为包含双引号的单个字符串(必须使用 \
进行转义)。要修复它,只需删除带有 to_s
.
的行
我写了一个方法,它接受一个数字数组,将数字 2 添加到它,然后 returns 一个字符串数组。
def add_two(array)
new_array = array.map{|x| "#{x} + 2 = #{x + 2}"}
new_array.to_s
end
以下为测试结果:
我的 return 中有一个不需要的 \
。我想弄清楚 \
是从哪里来的。有人能指出我正确的方向吗?
它没有添加额外的 \
s。 \
是用于转义 "
的转义字符,它是结果字符串的一部分。这里:
a = add_two(array)
# => "[\"1 + 2 = 3\", \"2 + 2 = 4\", \"3 + 2 = 5\"]"
puts a
# ["1 + 2 = 3", "2 + 2 = 4", "3 + 2 = 5"]
或直接:
puts add_two(array)
# ["1 + 2 = 3", "2 + 2 = 4", "3 + 2 = 5"]
它来自您最后的 to_s
。您正在将字符串数组(可能已经是您想要的)转换为包含双引号的单个字符串(必须使用 \
进行转义)。要修复它,只需删除带有 to_s
.