Cómo escribir cadenas multilíneas en Go

Suraj Joshi 30 enero 2023
  1. Cadena en Go
  2. Cadenas multilíneas en Go
Cómo escribir cadenas multilíneas en Go

Cadena en Go

String in Go es ligeramente diferente de otros idiomas. En Go, String es una secuencia de uno o más caracteres donde cada carácter es denotado por uno o más conjuntos de caracteres en la codificación UTF-8. Debido a esta característica, la string de Go puede incluso tener texto formado por una mezcla de muchos idiomas del mundo. Podemos representar la cadena encerrando un texto entre comillas dobles "".

package main

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

Producción :

We will get victory soon!!

Cadenas multilíneas en Go

Es necesario escribir cadenas de varias líneas mientras se trabaja con cadenas grandes como SQL, HTML o XML en Go. Si alguien es de origen python, puede saber que se usan comillas dobles triples para las cadenas de varias líneas. En este post, discutiremos varias técnicas para escribir cadenas de varias líneas en Go.

Método de código duro

Este es el enfoque más simple e ingenuo para resolver el problema, pero es tedioso ya que necesitamos separar las declaraciones Println() para cada nueva línea.

package main

import "fmt"

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

Producción :

Printing 
multiline Strings 
in Go!!

Literales de cadena sin procesar

El uso de la comilla (`) de carácter trata las secuencias de escape como \n, \t como una cadena literal y esto nos permite escribir cadenas de varias líneas.

package main

import "fmt"

func main() {

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

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

Producción :

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

Literales de cadena interpretados

Si queremos usar caracteres de escape como \n, \t, debemos usar comillas dobles para escribir cadenas de líneas múltiples en 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)
}

Producción :

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

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

LinkedIn

Artículo relacionado - Go String