Scrivi stringhe multilinea in Go

Suraj Joshi 20 marzo 2022
  1. Stringa in Go
  2. Stringhe multilinea in Go
Scrivi stringhe multilinea in Go

Stringa in Go

String in Go è leggermente diverso dalle altre lingue. In Go, String è una sequenza di uno o più caratteri in cui ogni carattere è indicato da uno o più set di caratteri nella codifica UTF-8. Grazie a questa caratteristica, Go string può anche avere un testo formato da un misto di molte lingue nel mondo. Possiamo rappresentare una stringa racchiudendo una parte di testo tra virgolette doppie "".

package main

import "fmt"
func main() {
    wish := "We will get victory soon!!"
    fmt.Println(wish)
}

Produzione:

We will get victory soon!!

Stringhe multilinea in Go

La scrittura di stringhe multilinea è necessaria quando si lavora con stringhe di grandi dimensioni come SQL, HTML o XML in Go. Se qualcuno ha un background in Python, potrebbe sapere che le virgolette doppie triple vengono utilizzate per le stringhe su più linee. In questo post, discuteremo varie tecniche per scrivere stringhe multilinea in Go.

Metodo hard-coded

Questo è l’approccio più semplice e ingenuo per risolvere il problema, ma è noioso in quanto abbiamo bisogno di linea separata di istruzioni Println() per ogni nuova linea.

package main

import "fmt"

func main() {
    fmt.Println("Printing ")
    fmt.Println("multiline Strings ")
    fmt.Println("in Go!!")
}

Produzione:

Printing 
multiline Strings 
in Go!!

Letterali stringa non elaborati

L’uso del carattere backquote (`) tratta le sequenze di escape come \n, \t come una stringa letterale e questo ci permette di scrivere stringhe su più linee.

package main

import "fmt"

func main() {

    multi_line := `Hey!! we
are going to
write multiline strings 
in Go.
`

    fmt.Printf("%s", multi_line)
}

Produzione:

Hey!! we
are going to
write multiline strings 
in Go.

Valori letterali stringa interpretati

Se desideriamo utilizzare caratteri di escape come \n, \t, dovremmo usare virgolette doppie per scrivere stringhe su più linee in Go.

package main

import "fmt"

func main() {

    multi_line := "Hey!! we \n" +
        "are going to \n" +
        "write multiline strings\n" +
        "in Go.\n"

    fmt.Printf("%s", multi_line)
}

Produzione:

Hey!! we 
are going to 
write multiline strings
in Go.
Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Articolo correlato - Go String