当块已经有自己的作用域时,设置Ruby块局部变量的目的是什么? [英] What is the purpose of setting Ruby block local variables when blocks have their own scope already?

查看:23
本文介绍了当块已经有自己的作用域时,设置Ruby块局部变量的目的是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

了解Ruby块here。在本例中,使用块局部变量有什么意义:

什么时候你可以只做下面的事情?块中的x已经有了自己的作用域,这与块外的x不同。

推荐答案

阻止作用域嵌套在其词法封闭作用域中:

foo = :outerfoo
bar = :outerbar

1.times do |;bar|
  foo = :innerfoo
  bar = :innerbar
  baz = :innerbaz
end

foo #=> :innerfoo
bar #=> :outerbar
baz # NameError

您需要一种方法来告诉Ruby:"我不想要这个来自外部作用域的变量,我想要一个新的。"这就是块局部变量的作用。

这篇关于当块已经有自己的作用域时,设置Ruby块局部变量的目的是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆