12

ルビー1.8.7を使用しています。以前にスクリプトの最後に自分の関数を書いたことがあり、それがうまく機能したと断言することもできました。

それらを一番上に置く必要がありますか?それが彼らが今働く唯一の方法のようです。大したことではありません。私はそれらを一番下に置くことを好むので、私は尋ねたいと思いました.

4

2 に答える 2

22

1 つまたは複数の BEGIN ブロック (awk から継承した Perl から継承) でコードを初期化できます。

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
于 2012-07-23T21:09:59.257 に答える
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 はインタープリター言語であるため、コードは実行時にのみ解析および処理されます。したがって、実際の参照の前に既に定義されているコード (メソッドの呼び出し、変数の使用など) のみを実行できます。

于 2012-07-23T21:06:29.573 に答える