gpt4 book ai didi

syntax - Clojure:[_] 在函数参数列表中做了什么?

转载 作者:行者123 更新时间:2023-12-03 13:52:41 25 4
gpt4 key购买 nike

我正在享受 clojure 的乐趣,并且想知道 _ 语法在函数参数向量中的作用。

例子:

(def available-processors
(.availableProcessors (Runtime/getRuntime)))

(prn "available processors: " available-processors)

(def pool
(Executors/newFixedThreadPool (+ 2 available-processors)))

(defn dothreads!
[func & {thread-count :threads exec-count :times :or {thread-count 1 exec-count 1}}]
(dotimes [t thread-count]
(.submit pool #(dotimes [_ exec-count] (func)))))

表格中的下划线是做什么的:
#(dotimes [_ exec-count] (func))

最佳答案

我相信按照惯例,下划线在 Clojure 中用作必需但未使用的参数的占位符。如Keith Bennet说:

In Clojure, the underscore is used idiomatically to indicate that the argument it identifies is not subsequently used.



您的示例与此“用法”一致,因为 dotimes 的第一个参数,它是一个索引器,不需要,但表单需要绑定(bind)。

关于syntax - Clojure:[_] 在函数参数列表中做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16020278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com