ruby - 这个方法名/局部变量混合会发生什么?

标签 ruby

我在一些代码中发现了一个方法,它执行以下操作:

def method1
  method1 = [1, 2, 2, 3, 4, 5, 5]
  return method1.uniq!
end

ruby 如何处理这个问题?我知道这是错误的代码,但 ruby 如何知道如何处理“method1.uniq!” ?它应该使用方法还是局部变量?

谢谢

最佳答案

您可以在终端 (irb) 中打开一个 ruby​​ session ,输入问题中的代码,然后自己查看结果。

Loading development environment (Rails 3.1.0)
ruby-1.9.2-p290 :001 > def derp
ruby-1.9.2-p290 :002?>   derp = [1,2,3,3,3]
ruby-1.9.2-p290 :003?>   derp.uniq
ruby-1.9.2-p290 :004?>   end
 => nil 
ruby-1.9.2-p290 :005 > derp
 => [1, 2, 3] 

为了回答您的问题,ruby 知道方法 derp 和其范围内的局部变量 derp 之间的区别。

关于ruby - 这个方法名/局部变量混合会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8174019/

相关文章:

ruby-on-rails - 为什么在循环内事务内的救援 block 内调用 next 不起作用?

ruby - 我如何模拟或覆盖 Kernel.system?

ruby - 使用 Unicode 归类算法在 Ruby 中排序

ruby - 为什么会存在 Ruby 模块内核?

ruby-on-rails - 如何在 Ruby 中将数组的数组从字符串转换为 float ?

ruby-on-rails - 使用 .include 检查数组中的多个项目? -- ruby 初学者

ruby-on-rails - 使用 url2png 将屏幕截图保存到自己的服务器的最佳方法?

ruby - ruby如何解析lambda或block中的 `self`关键字?

ruby - 具有可选查询参数的 Sinatra

ruby - Hash[string.split(...)] 与 Hash[*string.split(...)]