2016-11-15 3 views
-1

初心者の質問はこちら、 ここに私が構築している小さなプログラムがあります。そこにすべてを置くのではなく、ちょうど終わりです。なぜ[RUBY]の最後に開始関数を宣言する必要がありますか?

私は最後で私の「スタート」機能を宣言する必要があり、その後、後、再びそれを呼び出すなぜ私はかなり理解していません。何が後ろの論理ですか?

私の最初の推測は、私の "開始"機能がイベントを引き起こす前に、コード全体を最初に解釈する必要があるということです。

しかし、私はなぜそれを直後に呼び出す必要があるのか​​理解できません。

私は十分に明確です。あなたの助けのための

ありがとう!私はこれがあなたの質問に答える必要があると考えてい

def start 
    puts "1. I want to be Solid Snake" 
    puts "2. I want to be Aragorn" 
    print "> " 

    choice = $stdin.gets.chomp 

    if choice == "1" 
    snake 
    elsif choice == "2" 
    aragorn 
    else 
    puts "Oops, you can only choose between 1 and 2, try again." 
    end 
end 

start 
+0

Rubyのエキスパートではありませんが、一般に'def start'では関数を作成します。これは現在アプリケーションに存在しますが、アプリケーション自体には実行されません。関数 'start'、これを実行します(' def'と 'end'の間にあります)。私はそれを呼び出すときに呼び出す必要があります。"あなたは 'start'を覚えていますか? ! " –

+3

"なぜ私は私の"開始 "機能を最後に宣言する必要があるのですか?あなたはそうする必要はありません。唯一の要件は、使用する前に定義することです。 –

+0

"とし、直後にもう一度呼び出してください。 - 論理は、あなたが本質的に「これはコマンドを実行するときにプログラムを起動するコードです。さて、これから始めましょう」と言うことです。 –

答えて

2

:要約するとhttps://stackoverflow.com/a/5744352/1368554

を、関数定義は、彼らがあなたのスクリプトで表示される順序で実行されている文です。 startを手前に移動してdef startにすると、rubyはその関数について知りませんし、未解決のシンボルになります。

関連する問題