脚本底部的Ruby方法?

时间:2012-07-23 20:58:18

标签: ruby methods scripting

我正在使用ruby 1.8.7。我本可以发誓说我之前已经在我的脚本底部编写了我的函数,但它运行正常。

我必须将它们放在顶部吗?这似乎是他们现在工作的唯一方式。没有大碍。我只想把它们放在底部,所以我想我会问。

2 个答案:

答案 0 :(得分:17)

您可以在一个或多个BEGIN块中初始化代码(从Perl继承,从awk继承它们)。

can_i_do_this? #=>yes

BEGIN {
  def can_i_do_this?
    puts "yes"
  end
}

为了完整起见,还有END块:

END {
  can_i_do_this? #=> yes
}

def can_i_do_this?
  puts "yes"
end

答案 1 :(得分:6)

a
def a
  puts "Hello world!"
end

在Ruby中运行此脚本将为您提供:

script.rb:1:in `<main>': undefined local variable or method `a' for main:Object (NameError)

所以不,你不能把它们放在底部。由于Ruby是一种解释型语言,因此只能在运行时解析和处理任何代码。因此,您只能运行在实际引用之前已经定义的代码(调用方法,使用变量...)。