Réponses:
Selon la spécification du langage, vous pouvez utiliser un littéral de chaîne brut, où la chaîne est délimitée par des guillemets au lieu de guillemets doubles.
`line 1
line 2
line 3`
line 1
il sera invisible dans votre éditeur mais présent dans la chaîne.
$(abcd)
).
Tu peux écrire:
"line 1" +
"line 2" +
"line 3"
ce qui équivaut à:
"line 1line 2line3"
Contrairement à l'utilisation des tiques arrière, il préservera les caractères d'échappement. Notez que le "+" doit être sur la ligne "principale", c'est-à-dire:
"line 1"
+"line 2"
génère une erreur.
\n
et il est beaucoup plus facile de travailler avec des chaînes dynamiques et autres. Si j'ai raison, la réponse acceptée est vraiment pour les chaînes statiques dans le code pour le rendre joli.
Des littéraux de chaîne :
\n
'.Mais, si votre chaîne multi-lignes doit inclure une citation arrière (`), alors vous devrez utiliser un littéral de chaîne interprété:
`line one
line two ` +
"`" + `line three
line four`
Vous ne pouvez pas mettre directement un guillemet arrière (`) dans un littéral de chaîne brute (` `xx \
).
Vous devez utiliser (comme expliqué dans " comment mettre un backquote dans une chaîne backquoted? "):
+ "`" + ...
Utilisez des littéraux de chaîne bruts pour les chaînes multilignes:
func main(){
multiline := `line
by line
and line
after line`
}
Les littéraux de chaîne bruts sont des séquences de caractères entre guillemets, comme dans
`foo`
. Dans les guillemets, n'importe quel caractère peut apparaître sauf les guillemets arrière.
Une partie importante est que le littéral brut n'est pas seulement multi-lignes et être multi-lignes n'est pas le seul but de celui-ci.
La valeur d'un littéral de chaîne brute est la chaîne composée des caractères non interprétés (implicitement encodés en UTF-8) entre les guillemets; en particulier, les barres obliques inverses n'ont pas de signification particulière ...
Les échappements ne seront donc pas interprétés et les nouvelles lignes entre les ticks seront de véritables nouvelles lignes .
func main(){
multiline := `line
by line \n
and line \n
after line`
// \n will be just printed.
// But new lines are there too.
fmt.Print(multiline)
}
Vous avez peut-être une longue ligne que vous voulez rompre et vous n'avez pas besoin de nouvelles lignes. Dans ce cas, vous pouvez utiliser la concaténation de chaînes.
func main(){
multiline := "line " +
"by line " +
"and line " +
"after line"
fmt.Print(multiline) // No new lines here
}
Puisque "" est interprété, les échappements littéraux de chaîne seront interprétés.
func main(){
multiline := "line " +
"by line \n" +
"and line \n" +
"after line"
fmt.Print(multiline) // New lines as interpreted \n
}
En utilisant les ticks arrière, vous pouvez avoir des chaînes multilignes:
package main
import "fmt"
func main() {
message := `This is a
Multi-line Text String
Because it uses the raw-string back ticks
instead of quotes.
`
fmt.Printf("%s", message)
}
Au lieu d'utiliser les guillemets doubles («) ou les symboles de guillemets simples ('), utilisez plutôt des graduations pour définir le début et la fin de la chaîne. Vous pouvez ensuite l'enrouler sur plusieurs lignes.
Si vous indentez la chaîne, n'oubliez pas que l'espace blanc comptera.
Veuillez vérifier le terrain de jeu et faire des expériences avec.
Vous devez être très prudent sur le formatage et l'espacement des lignes dans go, tout compte et voici un exemple de travail, essayez-le 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)
}
Pour moi, c'est ce que j'utilise si l'ajout \n
n'est pas un problème.
fmt.Sprintf("Hello World\nHow are you doing today\nHope all is well with your go\nAnd code")
Sinon, vous pouvez utiliser le raw string
multiline := `Hello Brothers and sisters of the Code
The grail needs us.
`