Jar*_*ley 11 ruby methods scripting
我正在使用ruby 1.8.7.我本来可以发誓说我之前已经在我的脚本底部编写了我的函数,并且工作正常.
我必须把它们放在顶部吗?这似乎是他们现在工作的唯一方式.没有大碍.我只是喜欢把它们放在底部所以我想我会问.
ste*_*lag 20
您可以在一个或多个BEGIN块中初始化代码(从Perl继承,从awk继承它们).
can_i_do_this? #=>yes
BEGIN {
def can_i_do_this?
puts "yes"
end
}
Run Code Online (Sandbox Code Playgroud)
为了完整起见,还有END块:
END {
can_i_do_this? #=> yes
}
def can_i_do_this?
puts "yes"
end
Run Code Online (Sandbox Code Playgroud)
a
def a
puts "Hello world!"
end
Run Code Online (Sandbox Code Playgroud)
在Ruby中运行此脚本将为您提供:
script.rb:1:in `<main>': undefined local variable or method `a' for main:Object (NameError)
Run Code Online (Sandbox Code Playgroud)
所以不,你不能把它们放在最底层.由于Ruby是一种解释型语言,因此只能在运行时解析和处理任何代码.因此,您只能运行在实际引用之前已定义的代码(调用方法,使用变量...).