Trilhas
/
Go
Go
/
Programa
/
Strings
St

Strings em Go

1 exercício

Sobre Strings

Uma string em Go é uma sequência imutável de bytes, que não precisam necessariamente representar caracteres.

Um literal de string é definido entre aspas duplas:

const name = "Jane"

Strings podem ser concatenadas com o operador +:

"Jane" + " " + "Austen"
// => "Jane Austen"

Alguns caracteres especiais precisam ser escapados com uma barra invertida antes, como \t para uma tabulação e \n para uma nova linha em strings.

"How is the weather today?\nIt's sunny"  
// =>
// How is the weather today?
// It's sunny

O pacote strings contém muitas funções úteis para trabalhar com strings. Para mais informações sobre funções de string, confira a documentação do pacote strings. Aqui estão alguns exemplos:

import "strings"

// strings.ToLower returns the string given as argument with all its characters lowercased
strings.ToLower("MaKEmeLoweRCase")
// => "makemelowercase"

// strings.Repeat returns a string with a substring given as argument repeated many times
strings.Repeat("Go", 3)
// => "GoGoGo"

Caracteres especiais

Como mencionado anteriormente, alguns caracteres especiais precisam ser escapados com uma barra invertida antes. Abaixo está uma lista mais detalhada de quais são esses caracteres especiais:

Valor Descrição
\a Alerta ou campainha
\b Backspace
\\ Barra invertida
\t Tabulação horizontal
\n Avanço de linha ou nova linha
\f Avanço de página
\r Retorno de carro
\v Tabulação vertical
\' Aspas simples
\" Aspas duplas
fmt.Println("Joe\nWilliam\nJack\nAverell") 

// Output:
// Joe
// William
// Jack
// Averell

Literais de string brutos

Os literais de string brutos usam crases (`) como delimitador em vez de aspas duplas, e todos os caracteres neles são interpretados literalmente, ou seja, não é preciso escapar caracteres nem novas linhas.

Este é um exemplo de uma string com várias linhas:

const daltons = `Joe
William
Jack
Averell`

Essa string tem várias linhas. Mais especificamente, ela tem 3 \n. Mas, como é um literal de string bruto, não precisamos colocar o \n explicitamente na string. As novas linhas serão interpretadas literalmente.

Aqui estão outros exemplos comparando literais de string brutos com literais de string comuns:

`abc`
// same as "abc"

"\"" // regular string literal with 1 character: a double quote
// same as `"` a raw string literal with 1 character: a double quote

`\n
` // raw string literal with 3 character: a backslash, an 'n', and a newline
// same as "\\n\n"  a regular string literal with 3 characters: a backslash, an 'n', and a newline

"\t\n" // regular string literal with 2 characters: a tab and a newline
`\t\n`// raw string literal with 4 characters: two backslashes, a 't', and an 'n'
Editar via GitHub O link abre em uma nova janela ou aba

Aprenda Strings