忽略Stack Overflow在此答案中的語法高亮顯示。這是誤導。
線
justin.find{|key,value|key=='phone_number
包含一個多行字符串,這與phone_number
開始的開始。既然你還沒有完成它 - 通過輸入第二個'
-IRB禮貌地等待你完成字符串。進入
justin.find{|key,value|key=='phone_number'}
爲第二行的結果完成你已經開始字符串,進入一個方法調用或局部變量phone_number
,右後添加另一個字符串的開始時,從現在開始用}
。在這一點上它IRB看到的代碼看起來像
justin.find{|key,value|key=="phone_number\njustin.find{|key,value|key=="phone_number'}
這還沒有結束,因爲最後一個字符串沒有結束,所以更多的輸入IRB等待。
每個後續
justin.find{|key,value|key=='phone_number'}
讓你留在這個循環。
Ruby不會打斷你,並告訴你有語法錯誤。原因是IRB按照每條線路運行,並且您還沒有技術上完成線路。的確,表達式中的字符串中有新的行字符,但代碼中沒有會導致表達式終止的換行符。
現在我希望你的問題的答案是顯而易見的。爲了得到IRB圈外進入
'
¹每表達會更精確,但每行是這個答案的範圍令人滿意。
來源
2013-01-08 09:10:37
Jan
再次輸入什麼? –
在這個例子中,你可以輸入'}'+ [enter],你應該很好走 – Mischa
@Mishca我剛剛做了,但沒有執行find方法 –