ruby - 如何处理 Ruby 中的方法顺序?

标签 ruby

我是 Ruby 新手。我熟悉其他几种语言。我的问题是关于乱序调用方法。例如:

def myfunction
    myfunction2
end

def myfunction2
    puts "in 2"
end

如何在声明之前调用 myfunction2?有几种语言允许您在顶部或 .h 文件中声明它。 ruby 是如何处理的?

我是否总是需要遵循这个:

def myfunction2
    puts "in 2"
end

def myfunction
    myfunction2
end

主要是当我需要为一个类调用 def initialize 中的另一个方法时,这让我很烦。

最佳答案

您不能在定义方法之前调用它。但是,这并不意味着您不能定义 myfunction之前myfunction2 ! Ruby 有后期绑定(bind),所以调用 myfunction2myfunction不会与实际的 myfunction2 相关联在你打电话之前 myfunction .也就是说只要先调用myfunction完成之后 myfunction2已宣布,您应该没问题。

所以,这没问题:

def myfunction
    myfunction2
end

def myfunction2
    puts "in 2"
end

myfunction

这不是:

def myfunction
    myfunction2
end

myfunction

def myfunction2
    puts "in 2"
end

关于ruby - 如何处理 Ruby 中的方法顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57648482/

相关文章:

ruby-on-rails - 加载 RubyGems 插件库时出错 未加载 :/opt/local/lib/libssl. 1.0.0.dylib

ruby - 如何在JMeter中签署请求?

ruby - 实例变量 : self vs @

ruby-on-rails - Owl Carousel Slider 不会在 Ruby on Rails 应用程序中显示

ruby-on-rails - 如何在 Rails 应用程序中删除 URL 的尾部斜杠? (在 SEO View 中)

ruby-on-rails - irb/rails 控制台中的颜色

ruby-on-rails - 我需要从 HTML 转到 markdown,有什么建议吗?

Ruby - 在 Mac 和 Ubuntu 上执行不同的代码

ruby - 存储 Ruby 对象的集合

ruby - 使用 Ruby gsub 转义 linux 路径名中的空格