Avatar ·

Worin unterscheiden sich Backticks (``) von doppelten Anführungszeichen ("") in Go?

Hallo zusammen! Ich habe gerade angefangen, Go zu lernen, und mir ist aufgefallen, dass Strings auf zwei Arten deklariert werden können: mit doppelten Anführungszeichen und mit Backticks. Zum Beispiel:\n\n```go\nstr1 := "Hallo, Welt!"\nstr2 := `Hallo, Welt!`\n```\n\nAuf den ersten Blick gibt es keinen Unterschied – beide Varianten funktionieren. Aber ich habe versucht, einen mehrzeiligen String mit doppelten Anführungszeichen zu erstellen – ich habe einen Kompilierungsfehler erhalten. Mit Backticks funktioniert es dagegen:\n\n```go\n// Fehler!\n// str3 := "String\n// über zwei Zeilen"\n\n// Funktioniert\nstr4 := `String\nüber zwei Zeilen`\n```\n\nAußerdem habe ich bemerkt, dass innerhalb von doppelten Anführungszeichen Escape-Sequenzen wie , \\t, \\\\ verwendet werden können, während sie in Backticks einfach als Text ausgegeben werden:\n\n```go\nfmt.Println("String mitZeilenumbruch") // Tatsächlicher Zeilenumbruch\nfmt.Println(`String mitZeilenumbruch`) // Zeigt als Text an\n```\n\nGibt es noch andere Unterschiede? Wann sollte man welche Art von Anführungszeichen verwenden? Und was ist mit Performance – gibt es da einen Unterschied? Vielen Dank für die Hilfe!