Clojure 如何完全限定var';s值多少?
想象一下:Clojure 如何完全限定var';s值多少?,clojure,Clojure,想象一下: (def my-var 'my-symbol) ;; Please note that it must be 'my-symbol not `my-symbol my-var ;; => my-symbol 但是我想要 ;; => fully-qualified/my-symbol 除了将值转换为字符串,是否可以完全限定我的var值?谢谢。因为符号是从字符串创建的(请参阅),并且它们是不可变的,为了从符号构建完全限定的符号,转换为字符串是不可避免的 (symbol
(def my-var 'my-symbol) ;; Please note that it must be 'my-symbol not `my-symbol
my-var ;; => my-symbol
但是我想要
;; => fully-qualified/my-symbol
除了将值转换为字符串,是否可以完全限定我的var值?谢谢。因为符号是从字符串创建的(请参阅),并且它们是不可变的,为了从符号构建完全限定的符号,转换为字符串是不可避免的
(symbol (name (ns-name *ns*)) (name 'my-symbol))
关键词也可以完全限定。值::我的关键字
将被读取器扩展为完全限定,并采用读取该值的名称空间
::my-keyword
;;= :user/my-keyword
(ns other-ns)
::my-keyword
;;= :other-ns/my-keyword
当您需要完全限定值时,它们在Clojure中使用得更广泛。因为符号是从字符串创建的(请参阅),并且它们是不可变的,为了从符号构建完全限定符号,转换为字符串是不可避免的
(symbol (name (ns-name *ns*)) (name 'my-symbol))
关键词也可以完全限定。值::我的关键字
将被读取器扩展为完全限定,并采用读取该值的名称空间
::my-keyword
;;= :user/my-keyword
(ns other-ns)
::my-keyword
;;= :other-ns/my-keyword
当您需要完全限定的值时,它们在Clojure中使用得更广泛。使用后引号而不是直接引号:
(def my-var `my-symbol) ; and not 'my-symbol
使用后引号而不是直接引号:
(def my-var `my-symbol) ; and not 'my-symbol
谢谢cgrand,但我确实评论说它必须是“我的符号而不是”我的符号Hanks cgrand,但我确实评论说它必须是“我的符号而不是”我的符号