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

Wie gehe ich mit unerwarteten Feldern in fmt.Sprintf um?

Patricia Arquette
Freigeben: 2024-10-31 19:05:02
Original
542 Leute haben es durchsucht

How to Handle Unexpected Fields in fmt.Sprintf?

Umgang mit unerwarteten Feldern in fmt.Sprintf

In der Go-Programmierung wird die Funktion fmt.Sprintf zum Formatieren von Zeichenfolgen verwendet. Es tritt jedoch ein Problem auf, wenn die Eingabezeichenfolge unerwartete Felder enthält, was zu einer Panik führt.

Problem

Betrachten wir den folgenden Codeausschnitt:

<code class="go">package main

import "fmt"

func main() {
    tmp_str := "hello %s"
    str := fmt.Sprintf(tmp_str, "world")
    fmt.Println(str)
}</code>
Nach dem Login kopieren

In diesem Beispiel , tmp_str ist eine Vorlagenzeichenfolge, die ein einzelnes Argument erwartet. Wenn das Programm jedoch eine vollständige Zeichenfolge wie „Hallo Freunde“ (anstelle einer Vorlage) empfängt, gerät fmt.Sprintf aufgrund des Vorhandenseins eines zusätzlichen Arguments in Panik. Die Fehlermeldung wäre:

Hello Friends%!(EXTRA string=world)
Nach dem Login kopieren

Lösung

Ein Ansatz zur Lösung dieses Problems besteht darin, die Verwendung eines gültigen %s-Verbs in der Vorlagenzeichenfolge zu erzwingen. Benutzer können ein Platzhalterverb wie %.0s oder %.s angeben, um anzugeben, dass das Argument auf die Länge Null gekürzt wird, wenn kein passendes Feld vorhanden ist. Hier ist ein Beispiel:

<code class="go">tmp_str := "Hello Friends%.s"</code>
Nach dem Login kopieren

Bei Verwendung von %.s werden alle zusätzlichen Felder abgeschnitten, was zur gewünschten Ausgabe führt:

Hello Friends
Nach dem Login kopieren

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage