java-将System.out.format转换为Clojure
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-将System.out.format转换为Clojure,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1824字,纯文字阅读大概需要3分钟。
内容图文
![java-将System.out.format转换为Clojure](/upload/InfoBanner/zyjiaocheng/684/52973cf01ed44ec3ad7281db946b3b93.jpg)
我已经用Java编写了一些实用程序,现在我只想
将其翻译成Clojure.我遇到了一些障碍
类. Clojure宣称它与Java具有无缝的互操作性,
但我无法从Google找到好的解决方案.请
救命.谢谢.
我想直接使用Java类(我不想使用clojure
“格式”功能还没有,因为我只想看看
clojure-java-interop可以解决):
System.out.format("Enter number of points: ");
我所做的是:
(def x (. System out))
但是后来我尝试使用格式进行的所有操作都失败了:
(. x format "foo")
(. x (format "foo"))
(.format x)
(.format "foo")
(. x format)
(. x #(format))
(. x #(format %) "s")
(.format x "foo")
((.format x) "foo")
(x/format "foo")
(x. format "%s" "foo")
(. x format "%s" "s")
(. x format "%s" ["s"])
(def y (System.out.))
(def y (System.out.format.))
(format x "s")
而将System.exit(0)转换为clojure呢?
(. System exit 0)
确实有效.但是,为什么类似的翻译不适用于“ System.out.format”?
我似乎像猴子在键盘上打字,希望产生哈姆雷特!
请帮忙 !谢谢.
解决方法:
System.out.format接受可变参数. Java调度var args函数的方式是将其余的参数推到Object数组中.可以像这样在clojure中实现:
(. System/out format "abc" (into-array []))
(. System/out format "abc %d" (into-array [12]))
;; or use the more intuitive
(.format System/out "abc %d" (into-array[12]))
实际上,您的很多尝试都非常接近:
(def x (. System out))
(. x format "foo" (into-array[]))
(. x (format "foo" (into-array[])))
(.format x "foo" (into-array[]))
(. x format "%s" (into-array["foo"]))
但是,请注意,这将打印到repl控制台,而不一定是您的IDE所显示的内容.
为了像clojure那样显示它,而不是使用java的System.out对象,请使用clojure的* out *:
(. *out* format "abc %d" (into-array [12]))
;; "abc 12"
编辑
看来您的* out *被定义为OutputStreamWriter,它没有方法格式.不知道为什么,但是您可以使用绑定来克服这个问题,例如:
user=> (binding [*out* System/out]
(. *out* format "abc %d" (into-array[12])))
abc 12#object[java.io.PrintStream 0x4efb0c88 "java.io.PrintStream@4efb0c88"]
内容总结
以上是互联网集市为您收集整理的java-将System.out.format转换为Clojure全部内容,希望文章能够帮你解决java-将System.out.format转换为Clojure所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。