1

埋め込みコマンド (rb_eval など) を使用して、C++ コードから Ruby 関数を呼び出します。コードの実行を途中で停止し、ローカル変数を保存して、後で同じ場所から再起動する方法はありますか?

4

1 に答える 1

1

後で使用するために Ruby 変数を保存する場合は、マーシャリングと呼ばれる機能を使用します。保存するすべての変数を保存できるクラスを作成し、クラスをMarshal::dumpファイルに保存するために使用します。を使用して、後でデータを Ruby 変数に再構成できますMarshal::load

特定のポイントからコードを再開するのは簡単ではないかもしれません。クラスとデータをマーシャリングできますが、必ずしも Ruby インタープリター自体の状態全体をマーシャリングできるわけではありません。1 つの可能性は、マーシャリングされたデータに十分な状態情報を格納して、データを再読み込みし、どこから取得する必要があるかを判断できるようにすることです。

于 2010-02-11T22:31:04.970 に答える