Ruby 3.1 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Marshalモジュール > load

module function Marshal.#load

load(port, proc = nil) -> object[permalink][rdoc]
restore(port, proc = nil) -> object

port からマーシャルデータを読み込んで、元のオブジェクトと同じ状態をもつオブジェクトを生成します。

proc として手続きオブジェクトが与えられた場合には読み込んだオブジェクトを引数にその手続きを呼び出します。



str = Marshal.dump(["a", 1, 10 ** 10, 1.0, :foo])
p Marshal.load(str, proc {|obj| p obj})

# => "a"
#    1
#    10000000000
#    1.0
#    :foo
#    ["a", 1, 10000000000, 1.0, :foo]
#    ["a", 1, 10000000000, 1.0, :foo]
[PARAM] port:
StringIO (またはそのサブクラス)のインスタンスを指定します。
[PARAM] proc:
手続きオブジェクト。Proc
[EXCEPTION] TypeError:
メジャーバージョンが異なるか、バージョンの大きなマーシャルデータを読み込んだ場合に発生します。