可変引数関数には書式設定ディレクティブが必要ですか?
PHP の可変パラメータ関数は、関数定義で無限の数のパラメータを使用できる非常に便利な関数です。ただし、可変引数関数で書式設定ディレクティブを使用する必要があるかどうかは、特定のニーズによって異なります。フォーマット命令は通常、パラメーターを特定のフォーマットで出力または処理するために使用されます。たとえば、printf() 関数を使用する場合は、フォーマット文字列を指定する必要があります。可変パラメーター関数のパラメーターを書式設定する必要がある場合は、当然ながら書式設定命令を使用する必要があります。ただし、単にパラメータを他の関数に渡したり、基本的な操作を実行したりするだけの場合は、フォーマット命令を使用する必要はありません。つまり、可変個引数関数で書式設定命令を使用する必要があるかどうかは、特定のビジネス要件によって異なります。
質問の内容
いくつかの位置引数を受け取り、最後に any
スライスを伝播する可変個引数関数 respond
があります。この関数は、コンテキストに応じて最後のパラメーターを異なる方法で使用します (message
と data
が status
の値に応じてどのように異なるかに注意してください):
次の呼び出しに対して警告が表示されません:
リーリー ただし、次の警告では、引数を指定して respond が呼び出されますが、書式設定ディレクティブ
は発生しません (ただし、コードは期待どおりに実行されます。person
は です)構造体
) :
私の素人目には、 可変個引数関数は最後にフォーマット文字列とそのフォーマットの引数 を期待しているように見えます。しかし、なぜそうなるのでしょうか?可変個引数関数で実行できる内容に制限はありますか?
それとも、responder
を 2 つの部分 (「ok」と「not ok」) ごとに 1 つずつ分割したほうがよいでしょうか?
議論については https://github.com/golang/go/issues/26486 および https://go.dev/src/cmd/vet/testdata/print/print.go (行 316) も参照してください。 このメッセージgo コード内 (@mkopriva と @jimb がコメントで述べているように、リンターから警告が表示されます)
回避策
警告はリンターから来ています。 respond()
関数を呼び出すときに使用される関数が、その後に指定された引数と一致しません。
この特定のメッセージは、ログを記録する printf パーサー からのものです:
printf: printf フォーマット文字列とパラメータの一貫性を確認します
このチェックは、fmt.printf や fmt.sprintf などの書式設定関数の呼び出し、 およびこれらの関数に対して検出されたラッパー に適用されます。
response()
関数は、format
および a
パラメーターを使用して fmt.sprintf()
をそのまま呼び出すため、これは次のようになります。これを fmt.sprintf()
のラッパーとして考えてください。
この警告メッセージを回避または削除したい場合、最も簡単な「修正」は、これらのパラメータをそのまま使用しないことです。たとえば、パラメータの 1 つをコピーして、それを渡します。 リーリー
以上が可変引数関数には書式設定ディレクティブが必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









OpenSSLは、安全な通信で広く使用されているオープンソースライブラリとして、暗号化アルゴリズム、キー、証明書管理機能を提供します。ただし、その歴史的バージョンにはいくつかの既知のセキュリティの脆弱性があり、その一部は非常に有害です。この記事では、Debian SystemsのOpenSSLの共通の脆弱性と対応測定に焦点を当てます。 Debianopensslの既知の脆弱性:OpenSSLは、次のようないくつかの深刻な脆弱性を経験しています。攻撃者は、この脆弱性を、暗号化キーなどを含む、サーバー上の不正な読み取りの敏感な情報に使用できます。

この記事では、プロファイリングの有効化、データの収集、CPUやメモリの問題などの一般的なボトルネックの識別など、GOパフォーマンスを分析するためにPPROFツールを使用する方法について説明します。

この記事では、GOでユニットテストを書くことで、ベストプラクティス、モッキングテクニック、効率的なテスト管理のためのツールについて説明します。

Go Crawler Collyのキュースレッドの問題は、Go言語でColly Crawler Libraryを使用する問題を調査します。 �...

この記事では、GOプログラミングのGo FMTコマンドについて説明します。これは、公式スタイルのガイドラインに準拠するためのコードをフォーマットします。コードの一貫性、読みやすさ、およびスタイルの議論を削減するためのGO FMTの重要性を強調しています。 Best Practices fo

この記事では、Debianシステムの下でPostgreSQLデータベースを監視するためのさまざまな方法とツールを紹介し、データベースのパフォーマンス監視を完全に把握するのに役立ちます。 1. PostgreSQLを使用して監視を監視するビューPostgreSQL自体は、データベースアクティビティを監視するための複数のビューを提供します。 PG_STAT_REPLICATION:特にストリームレプリケーションクラスターに適した複製ステータスを監視します。 PG_STAT_DATABASE:データベースサイズ、トランザクションコミット/ロールバック時間、その他のキーインジケーターなどのデータベース統計を提供します。 2。ログ分析ツールPGBADGを使用します

バックエンド学習パス:フロントエンドからバックエンドへの探査の旅は、フロントエンド開発から変わるバックエンド初心者として、すでにNodeJSの基盤を持っています...
