2012-05-10 25 views
1

我在它需要一個Ruby字符串"\(",發現逃逸的演奏技巧上我。我如何做一個紅寶石字符串「(」?

"\("給我"(" "\\("給我"\\("

+0

'「\\(」'實際上是正確的雙引號風格。你只是在REPL中得到'inspect'的結果:嘗試'puts'\\(「'看看我的意思是什麼 – Nevir

回答

7

"\\("是正確的,問題在於inspect(這是IRB用來顯示上次調用的返回值)的結果與實際內容不同,因爲轉義:

puts "\\(".inspect #prints: "\\(" 
puts "\\("   #prints: \(

如果不需要插值,只使用單引號:

puts '\(' #prints: \(
+0

這是一個混淆的來源,如果你閱讀'」\ 'as *反斜槓,開放括號*或* literal-bracket *和'「\\(」'as * literal-backslash,bracket *那麼它就更有意義了。其他人使用這種轉義方法,知道你的[反斜槓轉義碼](http://en.wikipedia.org/wiki/C_syntax#Backslash_escapes)是值得的! – tadman