to_s方法返回不需要的" \"

时间:2015-07-01 09:12:21

标签: arrays ruby inspect

我写了一个方法,它接受一个数组,向它添加数字2,然后返回一个字符串数组。

def add_two(array)
  new_array = array.map{|x| "#{x} + 2 =  #{x + 2}"}
  new_array.to_s
end

以下是测试结果:

enter image description here

我的回复中有一个不受欢迎的\。我试图找出\的来源。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:5)

最终来自to_s。您正在将一个字符串数组(可能已经是您想要的)转换为包含双引号的单个字符串(必须由\转义)。要解决此问题,只需使用to_s删除您的行。

答案 1 :(得分:1)

它没有添加额外的\\是转义字符,以转义",它是结果String的一部分。这里:

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"]