查看Ruby元编程技术的源代码
←
Ruby元编程技术
跳转到:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== 扁平作用域(Flat scope) == 写一些简单脚本的时候,经常遇到这个需求,希望在类或者方法里访问main里的变量,如: x=1 def test x = x +1 end test => NoMethodError: undefined method `+' for nil:NilClass from (irb):6:in `test' from (irb):8 但是Ruby是没有inner scope这样的概念,方法、类和模块里的变量不会访问到外层的变量,要想访问就需要一点小技巧: x=1 define_method :test do x=x+1 end test => 2 利用闭包来扁平化scope,跨越def,class和module封闭的作用域。可以使用define_method,Class.new和Module.new的方式来扁平化作用域。
返回到
Ruby元编程技术
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面