有一个缓冲chan
,比如
(def c (clojure.core.async/chan 100))
是否可以查询 Chan 中当前有多少个元素?
实例化的通道来自ManyToManyChannel
类型,您可以使用 buf
属性访问通道的内部缓冲区。
(.buf c)
=> #<FixedBuffer clojure.core.async.impl.buffers.FixedBuffer@3d67452c>
该缓冲区实现clojure.lang.Counted
因此它是可数的。
(count (.buf c))
=> 0