के लिए प्रतीक्षा नहीं करता है मैं क्लोजर में एक टेक्स्ट गेम लिख रहा हूं। मैं चाहता हूं कि खिलाड़ी कंसोल पर लाइनों को टाइप करे, और गेम लाइन-दर-रेखा आधार पर प्रतिक्रिया दे।क्लोजर (रीड-लाइन) इनपुट
अनुसंधान ने मुझे दिखाया कि (read-line)
क्लोजर में मानक इनपुट से टेक्स्ट लाइन प्राप्त करने का तरीका है, लेकिन यह मेरे लिए काम नहीं कर रहा है।
मैं एक ताजा Leiningen परियोजना में हूँ, और मैं केवल स्रोत फ़ाइल को project.clj
इशारा करने के लिए एक :main
खंड को शामिल किया है:
(ns textgame.core)
(defn -main [& args]
(println "Entering -main")
; (flush) ;makes no difference if flush are commented out
(let [input (read-line)]
(println "ECHO:" input))
; (flush)
(println "Exiting -main"))
lein run
पैदावार का उपयोग कर:
Entering -main
ECHO: nil
Exiting -main
दूसरे शब्दों में पढ़ने के लिए (read-line)
के लिए कंसोल पर टेक्स्ट दर्ज करने का कोई अवसर नहीं है।
क्लोजर को अक्षरों और न्यूलाइन में प्रवेश करने और संबंधित स्ट्रिंग को वापस करने के लिए मुझे कैसे प्राप्त करना चाहिए?
(मैं सूक्ति टर्मिनल 2.32.1 उपयोग कर रहा हूँ लिनक्स टकसाल 11 पर, Leiningen जावा 1.6.0_26 जावा हॉटस्पॉट (टीएम) 64-बिट सर्वर वी एम, Clojure संस्करण 1.2.1 पर 1.6.1.1।)
अद्यतन : अगर मैं lein repl
चलाता हूं, तो मैं (println (read-line))
कर सकता हूं, लेकिन जब मेरे पास -main
फ़ंक्शन नहीं है और lein run
का उपयोग करके चलाएं।
[क्लोजर की (रीड-लाइन) रिटर्न की संभावित डुप्लिकेट शून्य; संकेत नहीं देता] (http: // stackoverflow।कॉम/प्रश्न/5861373/क्लोजर-रीड-लाइन-रिटर्न-नील-डू-नो-प्रॉम्प्ट) – amalloy
@amalloy आपके द्वारा लिंक किए गए उत्तर में सबसे अच्छा अनुमान यह था कि यह स्वैंक-क्लोजर/एसएलईएमई के साथ एक समस्या थी। मैं उनमें से किसी का भी उपयोग नहीं कर रहा हूं। – dukereg
क्या आपने अन्य समस्याओं को छोड़ने और लीन रन मुद्दों पर ध्यान केंद्रित करने के लिए सीधे जावा-सीपी क्लोजर.जर clojure.main /path/to/myscript.clj के साथ स्क्रिप्ट चलाने की कोशिश की है? – jneira