私は現在 clojure を学んでいますが、clojure プログラムでユーザー入力を取得して保存する方法を知りたいと思っていました。clojure api を見ていて、read-line という関数を見つけましたが、それが適切な関数であるかどうかはわかりません...
とにかく、どのように clojure でユーザー入力を取得しますか?
私は現在 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 を使用してそれを変数にバインドします。
例: user からユーザー 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) ))