ich versuche, eine SQL-Abfrage mit Sprintf()
zu erzeugen, wo ich die gleiche Variable zweimalGolang Sprintf Formatierung einer Zeichenfolge und verwenden es mehrmals
myStr := "test"
str := Sprintf("SELECT ... WHERE a = '%#[1]s' or b = '%#[1]s'", myStr)
fmt.Println(str)
Diese Schnipsel gibt das erwartete String
SELECT ... WHERE a = 'test' or b = 'test'
verwenden
aber go vet
sagt:
unrecognized printf flag for verb 's': '#' (vet)
Und ich bin verwirrt, warum. Das protect-Verb auf v
zu schalten erfüllt go vet
, aber fügt "
um meine Zeichenfolge hinzu. Und ich sehe ehrlich gesagt keinen Fehler bei der Verwendung von %#[1]s
.
Irgendwelche Gedanken?
Warum verwenden Sie '% # [1] s' anstelle von'% [1] s'? – tgogos
Was erwarten Sie von der Flagge '#' mit Strings 's'? Was in der Paketdokumentation lässt dich glauben, dass # das Verb 's' modifiziert? – Volker