gpt4 book ai didi

clojure - "Can' t 在代码中嵌入对象” Clojure 中 UTF-8 常量的错误

转载 作者:行者123 更新时间:2023-12-01 01:03:53 28 4
gpt4 key购买 nike

我想保持一个常量来表示 UTF-8 字符集。

(java.nio.charset.Charset/forName "UTF-8")
; #<UTF_8 UTF-8>
(def ^:const utf-8 (java.nio.charset.Charset/forName "UTF-8"))
; #'user/utf-8
utf-8
; #<UTF_8 UTF-8>

但是当我使用它时,我收到一个错误:
(type utf-8)
; CompilerException java.lang.RuntimeException: Can't embed object in code, maybe print-dup not defined: UTF-8, compiling:(NO_SOURCE_PATH:1:1)

我怎样才能解决这个问题?

最佳答案

如果 :const,这将起作用def中没有使用:

(def utf-8 (java.nio.charset.Charset/forName "UTF-8"))
; #'user/utf-8
(type utf-8)
; sun.nio.cs.UTF_8

为什么?此 answer to "Why can't I use Clojure's :^const with ..."很有用。

尽管如此,但我想找到更详细和/或更权威的东西。我也很想知道是否有办法改进 Clojure 的处理方式 :const对于上述情况。

关于clojure - "Can' t 在代码中嵌入对象” Clojure 中 UTF-8 常量的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20716740/

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