为什么ruby方法没有词法范围?
发布时间:2020-12-16 19:14:15 所属栏目:百科 来源:网络整理
导读:例如 def test a = "a is for apple" def inner_method a = "something" # this will refer to a different "a" end inner_method puts aend 这有什么理由吗?块有词法范围,为什么不用方法呢?这会被解决吗? 解决方法 这是因为Ruby的方法不是第一类对象(例
例如
def test a = "a is for apple" def inner_method a = "something" # this will refer to a different "a" end inner_method puts a end 这有什么理由吗?块有词法范围,为什么不用方法呢?这会被解决吗? 解决方法
这是因为Ruby的方法不是第一类对象(例如,它们将在
IO中).所以当你定义内部方法时,接收器是什么?大概是方法本身,或绑定或东西,但Ruby没有那么深的OO.
无论如何,我不清楚你期望在你的例子中发生什么,你想要它修改本地varialbe吗?如果是这样,proc是方法的合适替代品. def test a = "a is for apple" inner_method = lambda do a = "something" end a # => "a is for apple" inner_method.call a # => "something" end test “functional.rb”是这种编程风格的一个更奢侈的例子. 而“lambda,proc,and Proc.new”是Ruby不同类型闭包的细分. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- PostgreSQL 代码生成工具选择
- Objective-C = operator vs stringWithString / arrayWithA
- ruby-on-rails-3 – 在Heroku上使用Compass:/ tmp远程和本
- ruby-on-rails – 在Ruby on Rails中的simple_form中添加字
- vue2 前端搜索实现示例
- ruby-on-rails – 使用STI基类的Rails form_for
- React:react-native-scrollable-tab-view
- c# – 针对MS Access的LINQ asp.net页面.
- 正则获取图片地址
- 在U-boot下实现自动识别启动Flash的原理