Proxy 是一个对象,它允许您设置一个钩子,该钩子在从容器中检索值(FETCH
)或设置值(STORE
)时执行。请注意,Proxy
可以在破坏行为的地方引入可变性,例如在 Hash
键中。
要创建一个返回存储在其中值的 2 倍的容器,您可以执行类似以下操作
sub double() is rwmy := double();= 4;say ; # OUTPUT: «8»
方法§
方法 new§
method new(:!, :! --> Proxy)
创建一个新的 Proxy
对象。当访问值时,&FETCH
会使用一个参数(代理对象)进行调用,并且必须返回获取产生的值。当在容器中存储新值时,&STORE
会使用两个参数(代理对象和新值)进行调用。