-1
  1. 配列インデックスが返されますか、それとも配列全体が返されますか?

  2. そして、アレイの寿命はどうですか?作成した配列を返さない場合、引き続きメモリ スペースを使用しますか、それとも関数を終了したときに自動的に解放されますか?

私はOOPとRubyが初めてです。私は以前にCをやったことがあります。

4

1 に答える 1

2

Rubyについていくつか。まず、Ruby はガベージ コレクション言語であるため、Ruby の実装に応じて、ガベージ コレクタはさまざまなタイミングでメモリ領域を解放します。

第二に、「配列の戻り値」の意味が不明です。メソッドから意味する場合、内部で何が起こるかという問題は、おそらく実装の問題でもあります。プログラマの観点からは、配列全体が返されます。同じメモリ ブロックが参照されているかどうかは、変数のスコープに関する問題である可能性が高く、参照ではなく値によって配列全体を返すことは確かに可能です。

Ruby の「標準」実装 (MRI または Matz の Ruby とも呼ばれます) は C で記述され、オープン ソース化されているため、メモリ割り当て関数と割り当て解除関数を含むarray の C コードを確認できます。

于 2012-07-12T02:30:27.833 に答える