Sinatra 代理变量域
2023-12-20 15:44 更新
代理变量域只是把方法转送到类变量域。可是,他并非表现得 100% 类似于类变量域,因为你并不能获得类的绑定:只有显式地标记为供代理使用的方法才是可用的,而且你不能和类变量域共享变量/状态。(解释:你有了一个不同的 self
)。你可以显式地增加方法代理,通过调用 Sinatra::Delegator.delegate :method_name
。
在以下情况将获得代理变量域:
- 顶层的绑定,如果你做过 require "sinatra"
- 在扩展了
Sinatra::Delegator
mixin 的对象
自己在这里看一下代码:Sinatra::Delegator mixin 已经 被包含进了主命名空间。
以上内容是否对您有帮助:
更多建议: