埋め込みコマンド (rb_eval など) を使用して、C++ コードから Ruby 関数を呼び出します。コードの実行を途中で停止し、ローカル変数を保存して、後で同じ場所から再起動する方法はありますか?
質問する
51 次
1 に答える
1
後で使用するために Ruby 変数を保存する場合は、マーシャリングと呼ばれる機能を使用します。保存するすべての変数を保存できるクラスを作成し、クラスをMarshal::dump
ファイルに保存するために使用します。を使用して、後でデータを Ruby 変数に再構成できますMarshal::load
。
特定のポイントからコードを再開するのは簡単ではないかもしれません。クラスとデータをマーシャリングできますが、必ずしも Ruby インタープリター自体の状態全体をマーシャリングできるわけではありません。1 つの可能性は、マーシャリングされたデータに十分な状態情報を格納して、データを再読み込みし、どこから取得する必要があるかを判断できるようにすることです。
于 2010-02-11T22:31:04.970 に答える