13

Ruby で何BEGINを意味し、どのように呼ばれますか? たとえば、次のコードがあるとします。

puts "This is sentence 1."

BEGIN {
  puts "This is sentence 2."
}

なぜputs "This is sentence 2."最初に実行されるのですか?

4

3 に答える 3

20

BEGINそして、END他の何かが実行される前、または他のすべてが実行された後、インタープリターが終了する直前に呼び出されるブロックを設定します。

たとえば、これを実行すると:

END { puts 'END block' }

puts 'foobar'

BEGIN { puts 'BEGIN block' }

出力:

BEGIN ブロック
フーバー
ENDブロック

BEGIN通常、 andENDブロックにはもう少し論理的な順序を使用しますが、それはそれらが何をするかを示しています。

于 2012-12-27T06:28:03.040 に答える
6

キーワードRuby ドキュメントBEGINから:

BEGIN:プログラムの順次実行開始前に無条件に実行するコードをコードブロックで指定します。メソッドへの前方参照をシミュレートするために使用されることがあります。

于 2012-12-27T06:27:26.937 に答える
4

BEGINENDブロック

すべての Ruby ソース ファイルは、ファイルの読み込み中 (BEGINブロック) およびプログラムの実行終了後(ブロック) に実行されるコード ブロックを宣言できますEND

BEGIN { 
   begin block code 
} 

END { 
   end block code 
}

プログラムには、複数のBEGINandENDブロックが含まれる場合があります。BEGINブロックは、遭遇した順に実行されます。ENDブロックは逆の順序で実行されます。

「 Does begin . . . end while denote a 'block'?」にもほぼ同じ投稿があります。

チュートリアルポイントでブロックの詳細を読む

于 2012-12-27T12:12:34.827 に答える