Go Python の "tail -f" のようなジェネレーターと同等
Python の "tail -f" 機能を使用すると、最後のものを簡単に取得できます変更されたファイルの行。同様の関数の Go 実装が提案され、その効率性と慣用的な性質について懸念が生じました。
Go 実装
提供された Go 実装は、チャネルと goroutine を活用しています。ファイルの新しい行を継続的に監視します。このアプローチは機能しますが、そのパフォーマンスと Go のコーディング規約への準拠について懸念が生じます。
慣用的な Go アプローチ
Go の設計原則に合わせるための代替アプローチリーダーのラッパー、つまり tailReader を使用することが提案されています。このラッパーは、スリープ期間を指定して EOF を処理する Read メソッドを導入します。
tailReader インスタンスを作成し、io.Reader として利用することで、さまざまな関数やライブラリを使用してファイルを処理できます。例:
さらに、tailReader アプローチにより、以下が簡素化されます。ファイルを閉じるだけでシャットダウンできます。
利点
Goroutine アプローチと比較して、tailReader にはいくつかの利点があります。
したがって、tailReader アプローチは、Go で "tail -f" 機能を実装するためのよりクリーンで慣用的なソリューションを提供します。パフォーマンスとコーディング規約の順守に関する懸念。
以上がGo で Python の「tail -f」機能を実現する方法: ゴルーチンと tailReader?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。