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/10680907/

相关文章:

ruby - Ruby/Rack 中的多部分响应

windows - Ruby 可以用来开发简单的 Windows 应用程序吗?

mysql - 如何根据特定列计算时间

ruby-on-rails - 将 Rails 应用程序与 Google Apps 集成

ruby - 无法在 Amazon Linux 上安装 sqlite3 gem(已经安装了 ruby​​ 和 sqlite 的开发库)

ruby - 弃用警告 : The `Validator#setup` instance method is deprecated and will be removed on Rails 4. 2

ios - 如何在 Frank/Calabash 中更改 Switch 的值

ruby - 如何通过 Ruby 中的索引从数组中获取多个值

ruby - Ruby 变量赋值中的双管道符号?

Ruby 脚本卡在错误的 PG 连接调用上