在这里完成Clojure新手,所以我可能遗漏了一些关于clojure工作方式的基本知识,但我不了解Clojure评估函数的方式。
(defn get-output []
(print "Enter: Width <RTN> Height <RTN> Price <RTN> Shape <RTN>")
(print (calculate (read-string (read-line))))
我习惯使用像Ruby或C这样的语言来评估第一个打印函数,将字符串打印到终端。然后将评估第二个打印功能,提示用户输入。
然而,实际发生的是终端首先提示用户输入并在之后打印“输入:宽度高度价格形状”。最后,程序从calculate
输出返回值。
为什么这些打印报表没有像我预期的那样执行?
答案 0 :(得分:7)
语句按您期望的顺序执行。问题是print
没有刷新输出缓冲区。您可以在第一个(flush)
语句后致电print
,也可以致电println