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