我正在尝试编写一个具有两种方法(TrySlot
和 LookAtCut
)的小型 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/