Heim >Backend-Entwicklung >Golang >Wie gehe ich mit zusätzlichen Feldern in fmt.Sprintf um?

Wie gehe ich mit zusätzlichen Feldern in fmt.Sprintf um?

DDD
DDDOriginal
2024-11-01 16:44:311035Durchsuche

How to Handle Extra Fields in fmt.Sprintf?

Verarbeitung zusätzlicher Felder in fmt.Sprintf

Problem:
Bei Verwendung von fmt.Sprintf zum Formatieren von Zeichenfolgen , können zusätzliche Felder zu Panikfehlern führen. Beispielsweise führen Versuche, vollständige Zeichenfolgen wie „Hallo Freunde“ mithilfe einer Zeichenfolgenvorlage wie „hello %s“ zu formatieren, zu Fehlern wie „Hallo Freunde%!(EXTRA string=world)“. Wie ignorieren wir zusätzliche Felder in fmt.Sprintf?

Lösung:
Während es keine direkte Möglichkeit gibt, zusätzliche Felder in fmt.Sprintf zu ignorieren, besteht ein Ansatz darin, ein bestimmtes Verb zu erzwingen Erfordernis. In diesem Fall können wir von Benutzern verlangen, dass sie in ihren Befehlszeilenargumenten immer ein %s-Verb angeben. Um Fälle ohne tatsächliche Formatierung zu verarbeiten, können Benutzer die Zeichenfolge auf die Länge Null kürzen:

<code class="go">Hello Friends%.0s</code>

Oder noch kürzer:

<code class="go">Hello Friends%.s</code>

Dadurch wird die einfache Ausgabe erzeugt:

Hello Friends

Durch die Einhaltung dieser Konvention können Sie Fehler vermeiden, die durch unerwartete zusätzliche Felder in der Sprintf-Formatzeichenfolge verursacht werden.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit zusätzlichen Feldern in fmt.Sprintf um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn