Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Ractor::[]=()メソッドの使い方

[]=メソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

[]=メソッドは、Ractorが持つ、キーと値のペアを格納するストレージに値を設定するメソッドです。Ractorは、Ruby 3で導入された、独立したメモリ空間を持つ並行処理の単位であり、通常は互いにデータを直接共有できません。しかし、Ractor間で安全に情報を共有する仕組みが必要な場合があります。このメソッドは、Ractorインスタンスに紐付けられた特別なストア(共有ストレージ)に対して、指定したキーに関連付けて値を保存するために使用されます。

この機能により、他のRactorがそのRactorインスタンスから、保存されたキーを使って値を取得(Ractor#[]メソッド)できるようになります。例えば、my_ractor[:status] = "running" のように記述することで、my_ractorというRactorインスタンスの共有ストレージに:statusというキーで"running"という文字列を保存できます。

重要な点として、このメソッドで保存できる値は、フリーズされたオブジェクト(変更不可能なオブジェクト)やRactorが安全と判断するオブジェクトに限られます。これにより、複数のRactorから同時に同じデータにアクセスした際のデータ競合(レースコンディション)を防ぎ、安全な並行処理を実現します。Ractor間のメッセージパッシングと合わせて、Ractorの連携を強化する重要な手段の一つです。

構文(syntax)

1r = Ractor.new do
2  # Ractor内での処理
3end
4r[:key] = "value"

引数(parameters)

sym, val

  • sym: Ractor の内部状態に格納する値のキーとなるシンボル
  • val: Ractor の内部状態に格納する値

戻り値(return)

Object

指定されたキーに対応する値を、自身が保持するハッシュに設定し、その設定された値を返します。

関連コンテンツ