Go を使用して標準入力 (Stdin) でデータの可用性を確認するにはどうすればよいですか?
Go を使用した標準入力 (Stdin) でのデータの可用性の確認
Go では、os パッケージは、標準入力ストリーム。ただし、読み取り可能なデータがない場合、このストリームはブロックされることがあります。入力ストリームにデータが存在するかどうかを判断するには、os.Stdin をファイルのように扱い、そのサイズをチェックできます。
解決策:
os として。 Stdin はファイルのように動作し、その Stat() メソッドを使用して、サイズなどのファイル情報を取得できます。以下に例を示します。
<code class="go">package main import ( "fmt" "os" ) func main() { file := os.Stdin fi, err := file.Stat() if err != nil { fmt.Println("file.Stat()", err) } size := fi.Size() if size > 0 { fmt.Printf("%v bytes available in Stdin\n", size) } else { fmt.Println("Stdin is empty") } }</code>
使用法:
このコードは、実行可能ファイル「パイプ」として使用できます:
<code class="bash">$ ./pipe Stdin is empty $ echo test | ./pipe 5 bytes available in Stdin</code>
最初の行では、パイプ実行可能ファイルが入力なしで実行され、空の標準入力と出力が生成されます。 空の。" 2 行目では、テキスト「test」が入力にパイプされ、これにより Stdin のサイズが増加し、出力が「Stdin で 5 バイト利用可能」に変わります。
以上がGo を使用して標準入力 (Stdin) でデータの可用性を確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

GOのHTTPログミドルウェアは、リクエストメソッド、パス、クライアントIP、および時間がかかることを記録できます。 1. http.handlerfuncを使用してプロセッサをラップします。2。next.servehttpを呼び出す前後の開始時間と終了時間を記録します。完全なサンプルコードの実行が検証されており、中小のプロジェクトの開始に適しています。拡張機能の提案には、ステータスコードのキャプチャ、JSONログのサポート、リクエストIDトラッキングが含まれます。

Goのスイッチステートメントは、デフォルトでプロセス全体で実行されず、最初の条件に合わせた後に自動的に終了します。 1.スイッチはキーワードで始まり、1つまたはnoの値を持ち運ぶことができます。 2。上から下へのケースマッチは、最初の一致のみが実行されます。 3.複数の条件をコンマでリストして、同じケースに一致させることができます。 4.手動で休憩を追加する必要はありませんが、強制することができます。 5.デフォルトは、通常最後に配置されている比類のないケースに使用されます。

goprovides-built-built-insupportfor handlingenvironmentvariablesviatheospackage、developerstoread、set、andmanageenvironmentdatasecurelylelyandyly.toreadavariable、useos.getenv( "key")、whoreturnsenemptringtringifthesnoteset、lo

OS/execパッケージを使用して子プロセスを実行し、exec.commandを介してコマンドを作成しますが、すぐに実行しません。 2。.output()でコマンドを実行し、stdoutをキャッチします。 Exitコードがゼロ以外の場合は、exec.exiterrorを返します。 3。.start()を使用してブロックせずにプロセスを開始し、.stdoutpipe()と組み合わせて出力をリアルタイムでストリーミングします。 4。.stdinpipe()を介してプロセスにデータを入力し、書き込み後、パイプラインを閉じて.wait()を呼び出して最後を待つ必要があります。 5。Exec.exiterrorは、ゾンビプロセスを避けるために、故障したコマンドの出口コードとstderrを取得するために処理する必要があります。

答えは次のとおりです。GOアプリケーションには必須のプロジェクトレイアウトがありませんが、コミュニティは一般に、保守性とスケーラビリティを改善するために標準構造を採用しています。 1.CMD/プログラムの入り口を保存します。各サブディレクトリは、CMD/MyApp/Main.goなどの実行可能ファイルに対応しています。 2.内部/保存プライベートコード、外部モジュールによってインポートすることはできず、ビジネスロジックとサービスのカプセル化に使用されます。 3.PKG/ストア他のプロジェクトをインポートするための公に再利用可能なライブラリ。 4.API/オプションでOpenapi、Protobuf、およびその他のAPI定義ファイルを保存します。 5.Config/、Scripts/、およびWeb/Store構成ファイル、スクリプト、Webリソース。 6.ルートディレクトリにはgo.mod and go.sumが含まれています

GoのIF-Elseステートメントは括弧を必要としませんが、巻き毛の装具を使用する必要があります。スコープを制限する場合の変数の初期化をサポートします。条件は、エラーチェーンを介して審査できます。これは、エラーチェックによく使用されます。可変宣言と条件の組み合わせは、コードのシンプルさとセキュリティを改善することができます。

専用の合理的に構成されたHTTPクライアントを使用して、タイムアウトと接続プールを設定して、パフォーマンスとリソースの利用を改善します。 2.指数関数的なバックオフとジッターで再試行メカニズムを実装し、5xxのみ、ネットワークエラー、429ステータスコードを再試行し、再試行後のヘッダーに準拠します。 3.ユーザー情報(sync.mapやredisなど)などの静的データにキャッシュを使用して、繰り返しのリクエストを避けるために合理的なTTLを設定します。 4. Semaphoreまたはrate.limiterを使用して、並行性と要求レートを制限して、現在の制限またはブロッキングを防ぎます。 5.テスト、モッキング、およびログ、追跡、その他のミドルウェアの追加を容易にするためのインターフェイスとしてAPIをカプセル化します。 6.構造化されたログとインジケーターを介した要求期間、エラー率、ステータスコード、再試行時間を監視し、OPと組み合わせて

Gorunは、GOプログラムをすばやくコンパイルして実行するコマンドです。 1.コンパイルを完了して1つのステップで実行し、一時的な実行可能ファイルを生成し、プログラムが終了した後に削除します。 2。これは、開発とテストが簡単なメイン機能を含む独立したプログラムに適しています。 3.マルチファイル操作をサポートし、Gorun*.goまたはすべてのファイルを介して実行できます。 4.依存関係を自動的に処理し、モジュールシステムを使用して外部パッケージを解析します。 5.ライブラリやパッケージには適しておらず、永続的なバイナリファイルを生成しません。したがって、スクリプト、学習、頻繁な変更中の迅速なテストに適しています。それは効率的で簡潔なランニング方法です。
