11

1 つのファイルに Ruby スクリプトを記述しようとしています。

「メイン」関数を最初に記述し、その後にメインで使用される他の関数を定義できるかどうかを知りたいです。つまり、まだ定義されていない関数を呼び出して、定義順序に依存しないようにしたいのです。「未定義のメソッド」エラーが発生するため、順序を変更するだけでは不可能です。C/C++ では、前方宣言を使用します... Ruby に似たようなもの、またはこれに対する別の解決策はありますか?

4

1 に答える 1

21

呼び出す関数は、関数が定義されているときではなく、関数が実行されているときに定義される必要がありますmain。したがって、最も簡単な解決策はmain、スクリプトの最初に関数を記述し、最後に呼び出すことです。

def main
  foo(42)
  bar(24)
end

# definitions of foo and bar

main
于 2010-05-08T15:51:13.603 に答える