在哪个上下文中执行的块传递给ruby中的方法?

时间:2015-07-15 14:50:36

标签: ruby yield

我了解到你可以将整个代码块传递给ruby中的方法。该块可以在该方法中执行。我的问题是:它有哪些背景?是否会像接收方法中的其他语句一样对待它们,还是将它们视为调用方法中的语句?或者可能有一种特殊的第三种方式?

1 个答案:

答案 0 :(得分:3)

  • 局部变量遵循词汇范围。
  • 块变量在块内具有范围。
  • 全局变量可以全局访问。
  • 其他一切都取决于采用阻止的方法。例如,instance_eval在接收器的上下文中评估块。 class_eval在接收者类的上下文中评估块。