Ruby:为以后定义命名一个方法?

标签 ruby

我正在尝试编写一个具有两种方法(TrySlotLookAtCut)的小型 ruby​​ 脚本。每个方法都需要能够调用另一个方法。当 ruby​​ 解析第一个方法时,它失败了,因为它不理解第二个方法的名称,因为我还没有定义它。

那么,我该如何告诉 ruby​​,有一个名为 TrySlot 的方法,我稍后会定义它,这样我就可以在我的 LookAtCut< 定义中调用 TrySlot/?

最佳答案

您遇到问题的原因是 Ruby 通常假定所有以大写字母开头的名称都是常量。但是,它还可以让您定义名称以大写字母开头的方法。发生的事情如下:

  • Ruby 看到 def LookAtCut并正确定义了一个名为 LookAtCut 的方法
  • 内部LookAtCut , Ruby 看到 TrySlot ,假定它是一个常量,尝试找到它并因错误而失败,因为它尚未定义。

解决方案是不要使用以大写字符开头的方法名称。然后,您可以在另一个方法中使用尚未定义的方法:

def a
  b
end

def b
  puts "Hello!"
end

a #=> "Hello!"

关于Ruby:为以后定义命名一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9660985/

相关文章:

Ruby 中的 Java SecretKeySpec?

mysql - Rails 从 Webrick 和 LightSQL 切换到 MySQL 和 Apache

ruby - Ruby 中的左移是什么意思?

ruby - 使用 Ruby 检查 Internet 连接是否存在?

ruby-on-rails - 仅当满足某些条件时,如何将 "touch"关联为 `belongs_to` 关联的父模型?

html - 为所有网站内容 img src 添加前缀

css - Ruby on Rails 导入 Bootstrap 未找到

ruby - 如何改进这个 Ruby case switch 语句?

ruby-on-rails - 没有 Spring 的 Rails runner

ruby - 使用 RubyLDAP ldap 进行客户端身份验证