簡體   English   中英

to_s方法返回不需要的“ \\”

[英]to_s method returning an unwanted “\”

我編寫了一個方法,該方法接受一個數字數組,向其添加數字2,然后返回一個字符串數組。

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

以下是測試結果:

在此處輸入圖片說明

我的退貨中有一個多余的\\ 我試圖找出\\的來源。 有人可以指出我正確的方向嗎?

它來自最后的to_s 您正在將字符串數組(可能已經是您想要的)轉換為包含雙引號(必須用\\進行轉義)的單個字符串。 要解決此問題,只需使用to_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"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM