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

【Ruby3.x】IO::sync=()メソッドの使い方

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

作成日: 更新日:

基本的な使い方

sync=メソッドは、IOオブジェクトの書き込み同期モードを設定するメソッドです。このメソッドにtrueを設定すると、RubyプログラムからIOオブジェクト(ファイルなど)へデータを書き込む操作が行われるたびに、そのデータが即座にオペレーティングシステム(OS)のバッファを経由して、ハードディスクなどの最終的な出力先に確実に書き出されるようになります。これにより、プログラムが予期せず終了してしまった場合でも、直前までに書き込んだデータが失われるリスクを大幅に減らすことができます。

一方、falseを設定すると、データはまずRubyの内部バッファに一時的に蓄えられます。そして、このバッファがいっぱいになったときや、IOオブジェクトが閉じられるとき、または明示的に書き出しを指示するメソッドが呼ばれたときに、まとめて出力されます。この設定は、書き込み処理の回数を減らすことでパフォーマンスを向上させる効果がありますが、バッファ内にデータが蓄えられている間にプログラムが異常終了した場合、まだ出力されていないデータは失われる可能性があります。

データの安全性や堅牢性を最優先する場合はtrueを、書き込み速度や処理性能を優先する場合はfalseを選択するのが一般的です。多くのIOオブジェクトでは、初期設定としてfalseが設定されています。

構文(syntax)

1STDOUT.sync = true

引数(parameters)

req

  • req: trueを指定すると、バッファリングを行わずに即座に書き込みます。falseを指定すると、バッファリングが有効になります。

戻り値(return)

真偽値

IOクラスのsync=メソッドは、バッファリングの同期状態を設定し、その設定が正しく行われたかどうかを示す真偽値を返します。

関連コンテンツ

関連プログラミング言語