gpt4 book ai didi

clojure - Clojure 函数类型提示中的 [#^String str] 是什么

转载 作者:行者123 更新时间:2023-12-01 11:40:34 26 4
gpt4 key购买 nike

我看到一个像这样的 Clojure 函数

(defn strFun
[#^String str]
(...))

我猜 #^String 是类型提示,但是 String 之前的 #^ 是什么?

最佳答案

^TagName 之前,它是用于指定简单元数据标签的旧格式。你会时不时地在这个过渡期间编写的代码中看到它,尽管没有必要使用它。

user> #^String ["hello"]                
["hello"]
user> (meta #^String ["hello"])
{:tag java.lang.String}

等同于不使用#

user> (meta ^String ["hello"])          
{:tag java.lang.String}
user>

PS:在这个例子中,我用 java.lang.String 标记了一个向量。这一点需要注意的是,你用作标签的符号将被解析,符号解析到的值将被用作标签。所以你不能使用 undefined symbol 。

关于clojure - Clojure 函数类型提示中的 [#^String str] 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21265847/

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