Hat Go etwas Ähnliches wie Pythons mehrzeilige Zeichenketten:
"""line 1
line 2
line 3"""
Wenn nicht, was ist die bevorzugte Art, Zeichenketten zu schreiben, die sich über mehrere Zeilen erstrecken?
Hat Go etwas Ähnliches wie Pythons mehrzeilige Zeichenketten:
"""line 1
line 2
line 3"""
Wenn nicht, was ist die bevorzugte Art, Zeichenketten zu schreiben, die sich über mehrere Zeilen erstrecken?
Das Erstellen einer mehrzeiligen Zeichenkette in Go ist eigentlich unglaublich einfach. Verwenden Sie einfach das Backtick-Zeichen (`), wenn Sie Ihren String-Wert deklarieren oder zuweisen.
package main
import (
"fmt"
)
func main() {
// String in multiple lines
str := `This is a
multiline
string.`
fmt.Println(str + "\n")
// String in multiple lines with tab
tabs := `This string
will have
tabs in it`
fmt.Println(tabs)
}
Sie müssen sehr sorgfältig auf die Formatierung und den Zeilenabstand in go achten, alles zählt, und hier ist ein funktionierendes Beispiel, probieren Sie es aus https://play.golang.org/p/c0zeXKYlmF
package main
import "fmt"
func main() {
testLine := `This is a test line 1
This is a test line 2`
fmt.Println(testLine)
}
Für mich muss ich Folgendes verwenden ` Schwerer Akzent/Backquote und schreiben Sie einfach einen einfachen Test
+ "`" + ...
ist hässlich und lästig
also nehme ich eine Figur zum Beispiel: U+1F42C um es zu ersetzen
eine Vorführung
myLongData := `line1
line2 aaa
line3
` // maybe you can use IDE to help you replace all ` to
myLongData = strings.ReplaceAll(myLongData, "", "`")
+ "`"
v.s. replaceAll(, "", "`")
package main
import (
"strings"
"testing"
)
func multilineNeedGraveWithReplaceAll() string {
return strings.ReplaceAll(`line1
line2
line3 aaa`, "", "`")
}
func multilineNeedGraveWithPlus() string {
return `line1
line2
line3` + "`" + "aaa" + "`"
}
func BenchmarkMultilineWithReplaceAll(b *testing.B) {
for i := 0; i < b.N; i++ {
multilineNeedGraveWithReplaceAll()
}
}
func BenchmarkMultilineWithPlus(b *testing.B) {
for i := 0; i < b.N; i++ {
multilineNeedGraveWithPlus()
}
}
cmd
go test -v -bench=. -run=none -benchmem
mehr sehen Prüfung.B
Ausgabe
goos: windows
goarch: amd64
pkg: tutorial/test
cpu: Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
BenchmarkMultilineWithReplaceAll
BenchmarkMultilineWithReplaceAll-8 12572316 89.95 ns/op 24 B/op 1 allocs/op
BenchmarkMultilineWithPlus
BenchmarkMultilineWithPlus-8 1000000000 0.2771 ns/op 0 B/op 0 allocs/op
PASS
ok tutorial/test 7.566s
Ja, die + "`"
hat eine bessere Leistung als die andere.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.