我在clojure中有以下代码:
(do
(println "starting....")
(sig! a 0)
(sig! b 0)
(future
(Thread/sleep 4000)
(println "switch 1")
(sig! a 1)
(sig! b 0)
(Thread/sleep 4000)
(println "switch 2")
(sig! a 0)
(sig! b 1)
(Thread/sleep 4000)
(println "switch 3")
(sig! a 1)
(sig! b 1)) nil))
Run Code Online (Sandbox Code Playgroud)
我有一些观察者听取原子a,b,s和c1并在它们改变时打印出一些字符串.使用(print (str uid ":" @o "\n")
或println版本.clojure文档说print
并且println
应该表现完全相同的方式,除了换行符println
,但我没有看到这一点.观察者使用时,println
我立刻看到了弦乐.当观察者使用时print
.我只看到下一个println
被调用时的输出.下面我有println
vs 的输出print
.随着print
我只看到了最后的值println
.
starting....
switch 1
a:1
s:1
switch 2
a:0
b:1
s:0
s:1
switch 3
Run Code Online (Sandbox Code Playgroud)
现在有了println
starting....
switch 1
a:1
s:1
switch 2
a:0
b:1
s:0
s:1
switch 3
a:1
s:0
c1:1
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,在这种情况下会打印观察者所选择的更改.我正在使用clojure 1.5.它似乎print
需要println
将其内容刷新到控制台.
归档时间: |
|
查看次数: |
2175 次 |
最近记录: |