相关疑难解决方法(0)

Ruby在嵌套函数中访问外部变量

我相信这有一个简单的答案; 我似乎无法找到它.我在Ruby中创建了一个嵌套函数,但我无法从内部函数内部的外部函数访问变量:

def foo(x)
  def bar
    puts x
  end
  bar
  42
end

foo(5)
Run Code Online (Sandbox Code Playgroud)

我得到:NameError: undefined local variable or methodx'为main:Object`

类似的Python代码有效:

def foo(x):
  def bar():
    print x
  bar()
  return 42

foo(5)
Run Code Online (Sandbox Code Playgroud)

那么我如何在Ruby中做同样的事情呢?

ruby scope nested

41
推荐指数
1
解决办法
8022
查看次数

为什么我不能在Ruby中的方法中访问局部变量?

我有一个名为test.rb的Ruby文件

ff="ff"
def test
  puts ff
end
Run Code Online (Sandbox Code Playgroud)

我执行它,得到错误:

test.rb:3:in `test': undefined local variable or method `ff' for main:Object (NameError)

这是什么原因?有没有文件可以解释它?

ruby

11
推荐指数
2
解决办法
9424
查看次数

标签 统计

ruby ×2

nested ×1

scope ×1