Clojure 为什么符号的双向间接定向->;var->;价值
为什么clojure将符号映射到变量,而不是直接映射到值?符号解析为变量和变量引用值的双向间接寻址背后的想法是什么 var实际上是什么,它只是一个内存引用,还是一个做得更多的java类Clojure 为什么符号的双向间接定向->;var->;价值,clojure,Clojure,为什么clojure将符号映射到变量,而不是直接映射到值?符号解析为变量和变量引用值的双向间接寻址背后的想法是什么 var实际上是什么,它只是一个内存引用,还是一个做得更多的java类 文档中说,这是需要的,以便可以重新定义值,但是如果没有双向间接寻址,为什么不能重新定义值?您可以在此处找到Clojurevar机制的详细描述: 由于Clojure数据是不可变的,因此需要像var或atom这样的间接机制来允许“更改”。这有点像Java中有一个变量name,它实际上是一个指向类似Fred的字符串的指
文档中说,这是需要的,以便可以重新定义值,但是如果没有双向间接寻址,为什么不能重新定义值?您可以在此处找到Clojure
var
机制的详细描述:
由于Clojure数据是不可变的,因此需要像var
或atom
这样的间接机制来允许“更改”。这有点像Java中有一个变量name
,它实际上是一个指向类似Fred
的字符串的指针。稍后,您可以重新分配name
以指向不同的字符串Barney
Yes作为java类实现,并用于线程绑定、元数据、验证等。