先在命名空间xxx下建立一个私有变量java
(ns xxx) (def ^:private value 1) xxx/value ; 1
切换回user命名空间,访问xxx/value,会获得一个异常(访问权限在起做用)code
(ns user) xxx/value ; CompilerException java.lang.IllegalStateException: var: xxx/value is not public, compiling:(NO_SOURCE_PATH:0:0)
Clojure容许经过其余方式得到私有值io
; 用#'能够获得引用类型Var #'xxx/value ; 用deref对Var进行引用求值(或@) (deref #'xxx/value) ; 1 @#'xxx/value ; 1 ; 为了方便使用,将其绑定到当前命名空间 (def value @#'xxx/value) value ; 1