この回答で強調表示されているStackOverflowの構文は無視してください。誤解を招く恐れがあります。
この線
justin.find{|key,value|key=='phone_number
で始まる複数行の文字列の先頭が含まれますphone_number
。あなたはまだそれを終えていないので—秒を入力することによって'
—IRBはあなたが文字列を終えるのを丁寧に待ちます。入る
justin.find{|key,value|key=='phone_number'}
2行目では、開始した文字列が終了し、メソッド呼び出しまたはローカル変数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をループから外すには、次のように入力します。
'
¹式ごとの方が正確ですが、この回答のコンテキストでは行ごとで十分です。