这是make-counter程序并调用它
(define make-counter
(let ((glob 0))
(lambda ()
(let ((loc 0))
(lambda ()
(set! loc (+ loc 1))
(set! glob (+ glob 1))
(list loc glob))))))
> (define counter1 (make-counter))
counter1
> (define counter2 (make-counter))
counter2
> (counter1)
(1 1)
> (counter1)
(2 2)
> (counter2)
(1 3)
> (counter1)
(3 4)
Run Code Online (Sandbox Code Playgroud)
我无法理解为什么glob表现为类变量,而loc表现为实例变量.
Access Levels
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
(Default) Y Y N N
private Y N N N
Run Code Online (Sandbox Code Playgroud)
“世界”访问级别是什么?它与包访问级别有何不同?
编辑:我的错。有一个谬论,即程序中的所有代码都在一个包中。