2013-08-31 5 views
7

मैं स्कैला का उपयोग कर एक प्रारंभिक प्रोग्रामिंग कक्षा पढ़ रहा हूं। हम आरईपीएल से शुरू कर रहे हैं। आरईपीएल में उसमें एक बग है, जब छात्र रीडलाइन कमांड में प्रवेश करता है, तो उनका इनपुट प्रतिबिंबित नहीं होता है। क्या कोई कामकाज है जिसे मैं सुझा सकता हूं या प्रदान कर सकता हूं?स्कैला आरईपीएल में उपयोगकर्ता इनपुट कैसे गूंजें?

ग्रहण का उपयोग करते समय मुझे यह समस्या नहीं है, लेकिन मेरे छात्रों को ग्रहण शुरू करने से कुछ सप्ताह पहले यह होगा।

+0

@ som-snytt 'reader.readLine' कुछ अजीब कारणों से 2.10 के साथ काम नहीं करता है। मुझे लगता है कि यह समस्या है। – gourlaysama

उत्तर

2

उपयोग scala -Xnojline:

scala> val l = readLine 
test 
l: String = test 

हालांकि यह कुछ बातें,, तोड़ करता है विशेष तीर कुंजी में तो आप पिछले आदेशों को संशोधित नहीं कर सकते हैं।

यदि उपलब्ध हो, तो आप उन कार्यक्षमताओं को पुनर्स्थापित करने के लिए rlwrap scala -Xnojline (साइगविन पर भी उपलब्ध होना चाहिए) का उपयोग कर सकते हैं।

this post पर पूर्ण क्रेडिट।

4

आप आरईपीएल के पाठक तक पहुंच प्राप्त करने के लिए पावर मोड का उपयोग कर सकते हैं;

scala> :power 
** Power User mode enabled - BEEP WHIR GYVE ** 
** :phase has been set to 'typer'.   ** 
** scala.tools.nsc._ has been imported  ** 
** global._, definitions._ also imported ** 
** Try :help, :vals, power.<tab>   ** 

scala> repl.in.readLine("enter something: ") 
enter something: hello world 
res0: String = hello world 

scala> 

संपादित: के रूप में @ som-snytt ने कहा, 2.11 में आप ऊपर कोड है, जो दोनों छोटा और आसान याद करने के लिए है में reader बजाय repl.in उपयोग कर सकते हैं यह आप एक पूरी तरह से काम कर रहा readLine दे देंगे ।

+0

धन्यवाद! repl.in.readLine पूरी तरह से काम करता है; पाठक .readLine नहीं करता है। नहीं मिला:
पर मेरी मैक, मैं त्रुटि मिलती मूल्य पाठक
Windows पर, मैं त्रुटि मिलती है: वर्ग ग्लोबल में मूल्य पाठक scala.tools.nsc.Global में पहुँचा नहीं जा सकता
repl.in.readLine है शायद किसी भी मामले में मेरे छात्रों के लिए बेहतर है, क्योंकि यह जोर देता है कि यह केवल आरईपीएल के लिए है। –

संबंधित मुद्दे