目次
質問の内容
回避策
ホームページ バックエンド開発 Golang 可変引数関数には書式設定ディレクティブが必要ですか?

可変引数関数には書式設定ディレクティブが必要ですか?

Feb 09, 2024 pm 02:40 PM

可変引数関数には書式設定ディレクティブが必要ですか?

PHP の可変パラメータ関数は、関数定義で無限の数のパラメータを使用できる非常に便利な関数です。ただし、可変引数関数で書式設定ディレクティブを使用する必要があるかどうかは、特定のニーズによって異なります。フォーマット命令は通常、パラメーターを特定のフォーマットで出力または処理するために使用されます。たとえば、printf() 関数を使用する場合は、フォーマット文字列を指定する必要があります。可変パラメーター関数のパラメーターを書式設定する必要がある場合は、当然ながら書式設​​定命令を使用する必要があります。ただし、単にパラメータを他の関数に渡したり、基本的な操作を実行したりするだけの場合は、フォーマット命令を使用する必要はありません。つまり、可変個引数関数で書式設定命令を使用する必要があるかどうかは、特定のビジネス要件によって異なります。

質問の内容

いくつかの位置引数を受け取り、最後に any スライスを伝播する可変個引数関数 respond があります。この関数は、コンテキストに応じて最後のパラメーターを異なる方法で使用します (messagedatastatus の値に応じてどのように異なるかに注意してください):

リーリー

次の呼び出しに対して警告が表示されません:

リーリー

ただし、次の警告では、引数を指定して 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Debian OpenSSLの脆弱性は何ですか Debian OpenSSLの脆弱性は何ですか Apr 02, 2025 am 07:30 AM

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

PPROFツールを使用してGOパフォーマンスを分析しますか? PPROFツールを使用してGOパフォーマンスを分析しますか? Mar 21, 2025 pm 06:37 PM

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

Goでユニットテストをどのように書きますか? Goでユニットテストをどのように書きますか? Mar 21, 2025 pm 06:34 PM

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

Go's Crawler Collyのキュースレッドの問題は何ですか? Go's Crawler Collyのキュースレッドの問題は何ですか? Apr 02, 2025 pm 02:09 PM

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

GOの浮動小数点番号操作に使用されるライブラリは何ですか? GOの浮動小数点番号操作に使用されるライブラリは何ですか? Apr 02, 2025 pm 02:06 PM

GO言語の浮動小数点数操作に使用されるライブラリは、精度を確保する方法を紹介します...

Go FMTコマンドとは何ですか?なぜそれが重要なのですか? Go FMTコマンドとは何ですか?なぜそれが重要なのですか? Mar 20, 2025 pm 04:21 PM

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

Debianの下のPostgreSQL監視方法 Debianの下のPostgreSQL監視方法 Apr 02, 2025 am 07:27 AM

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

フロントエンドからバックエンドの開発に変身すると、JavaやGolangを学ぶことはより有望ですか? フロントエンドからバックエンドの開発に変身すると、JavaやGolangを学ぶことはより有望ですか? Apr 02, 2025 am 09:12 AM

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

See all articles