私は現在clojureを学んでいますが、clojureプログラムでユーザー入力を取得して保存する方法を考えていました。 clojure apiを調べていて、read-lineという関数を見つけましたが、それが適切な関数であるかどうかはわかりません...
とにかく、どのようにしてclojureでユーザー入力を取得しますか?
read-line
は正しい関数です。
(println (read-line))
..基本的にユーザーの入力をエコーします:
Clojure 1.0.0-
user=> (println (read-line))
this is my input
this is my input
Ifステートメントで使用するには、おそらくletを使用します。
(let [yayinput (read-line)]
(if (= yayinput "1234")
(println "Correct")
(println "Wrong")))
それが私のClojureの知識の限界についてなので、それであなたが始めるのに十分であることを願っています!
Java.。のすべてにアクセスできることも忘れないでください。
OK、おそらくいくつかの例を提示する必要があります...私のclojureスキルは良くないので、これらの例は少し調整する必要があるかもしれません。
System.console()方法:
(let [console (. System console)
pwd (.readPassword console "tell me your password: ")]
(println "your password is " pwd))
BufferedReader方法:
(print "give me a line: ")
(let [reader (Java.io.BufferedReader. *in*)
ln (.readLine reader)]
(println "your line is " ln))
私のポイントは、ClojureではJavaの知識とJava自体を活用できるということです。これは、宣伝されている主要な強みの1つです。
質問がGUIからのユーザー入力に関するものだったとしたら、私のスコアはどうだったでしょうか。
ちなみに、JOptionPaneを使用して小さなGUIを作成し、ユーザー入力を取得することができます...
read-lineは、ユーザー入力を取得し、letを使用してそれを変数にバインドするために使用されます。
例:ユーザーからユーザーIDとパスワードを読み取って表示する場合は、次のコードを使用できます。
(defn print-message [pid pw]
(println "PID : " pid)
(println "PW : " pw))
(defn inp[]
(println "Enter your PID and password")
(let[pid (read-line) pw (read-line)]
(print-message pid pw) ))