Como Escrever strings Multilíngües em Go

Suraj Joshi 30 janeiro 2023
  1. String em Go
  2. Strings Multilíngües em Go
Como Escrever strings Multilíngües em Go

String em Go

String em Go é ligeiramente diferente de outros idiomas. Em Go, String é uma seqüência de um ou mais caracteres onde cada caractere é denotado por um ou mais conjuntos de caracteres na codificação UTF-8. Devido a esta característica, Go string pode até mesmo ter texto formado a partir de uma mistura de muitos idiomas no mundo. Podemos representar uma string ao anexar um texto entre aspas duplas "".

package main

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

Resultado:

We will get victory soon!!

Strings Multilíngües em Go

A escrita de strings de várias linhas é necessária enquanto se trabalha com strings grandes como SQL, HTML ou XML in Go. Se alguém é de fundo Python, pode saber que são usadas aspas triplas duplas para strings multi-linhas. Neste post, discutiremos várias técnicas para escrever strings multi-linhas em Go.

Método Hard-Coded

Esta é a abordagem mais simples e ingênua para resolver o problema, mas é entediante, pois é necessário alinhar as declarações Println() separadas para cada nova linha.

package main

import "fmt"

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

Resultado:

Printing 
multiline Strings 
in Go!!

Literais de string crus

O uso de caracteres de contra-bucle (backquote `) trata seqüências de fuga como \n, \t como uma string literal e isto nos permite escrever seqüências de várias linhas.

package main

import "fmt"

func main() {

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

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

Resultado:

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

Literais de String Interpretadas

Se desejarmos utilizar caracteres de escape como \n, \t, devemos utilizar citações duplas para escrever strings com várias linhas em 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)
}

Resultado:

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

Artigo relacionado - Go String