Tutorial

Uma introdução ao trabalho com Strings em Go

GoDevelopment

Uma string é uma sequência de um ou mais caracteres (letras, números, símbolos) que podem ser uma constante ou uma variável. Criadas com o padrão de codificação de caracteres Unicode, as strings são sequências imutáveis, o que significa que elas não podem ser modificadas.

Como o texto é uma forma tão comum de dados que usamos no dia a dia, o tipo de dados da string é um bloco de construção muito importante da programação.

Este tutorial sobre a linguagem Go revisará como criar e imprimir strings, como concatenar e replicar strings e como armazenar strings em variáveis.

Literais de string

Na linguagem Go, as strings ficam entre sinais de crase (ou diacrítico de acento grave). ` (às vezes chamadas de acento à esquerda) ou aspas duplas ". Dependendo de quais aspas você utilizar, a string terá características diferentes.

Usar sinais de crase, como em `bar`criará uma literal de string *raw *(bruta). Em uma literal de string bruta, qualquer caractere pode aparecer entre aspas, com a exceção dos sinais de crase. Aqui está um exemplo de uma literal de string bruta:

`Say "hello" to Go!`

As barras invertidas não possuem significado especial dentro de literais de string brutas. Por exemplo, o \n aparecerá como os caracteres existentes, a barra invertida \ e a letra n - ao contrário do que ocorre com as literais de string interpretadas, em que a letra \n efetivamente inseriria uma nova linha.

As literais de string brutas também podem ser usadas para criar strings de várias linhas:

`Go is expressive, concise, clean, and efficient.
Its concurrency mechanisms make it easy to write programs
that get the most out of multi-core and networked machines,
while its novel type system enables flexible and modular
program construction. Go compiles quickly to machine code
yet has the convenience of garbage collection and the power
of run-time reflection. It's a fast, statically typed,
compiled language that feels like a dynamically typed,
interpreted language.`

As literais de string interpretadas são sequências de caracteres entre aspas duplas, como em "bar". Dentro das aspas, qualquer caractere pode aparecer com a exceção de nova linha e aspas duplas sem sequência de escape.

"Say \"hello\" to Go!"

Quase sempre você usará as literais de string interpretadas pois elas permitem o uso de caracteres de escape dentro delas.

Agora que entende como as strings são formatadas em Go, vamos ver como imprimir strings em programas.

Imprimindo strings

Você pode imprimir strings usando o pacote fmt da biblioteca do sistema e chamando a função Println():

fmt.Println("Let's print out this string.")
Output
Let's print out this string.

Você precisa import (importar) os pacotes de sistema ao usá-los, de modo que para imprimir uma string, um progama simples ficaria parecido com este:

package main

import "fmt"

func main() {
    fmt.Println("Let's print out this string.")
}

Concatenação de string

Concatenação significa unir strings, de ponta a ponta, para criar uma nova string. Você pode concatenar strings com o operador +. Lembre-se de que quando trabalhar com números, o + será um operador de adição, mas quando usado com strings ele é um operador de união.

Vamos combinar os literais de string "Sammy" e "Shark" junto com a concatenação através de uma instrução fmt.Println():

fmt.Println("Sammy" + "Shark")
Output
SammyShark

Se quiser um espaço em branco entre as duas strings, simplesmente inclua o espaço em branco dentro de uma string. Neste exemplo, adicione o espaço em branco dentro das aspas após Sammy:

fmt.Println("Sammy " + "Shark")
Output
Sammy Shark

O operador + não pode ser usado entre dois tipos de dados diferentes. Como exemplo, não é possível concatenar strings e números inteiros juntos. Se você tivesse que tentar escrever o seguinte:

fmt.Println("Sammy" + 27)

Você receberia os seguintes erros:

Output
cannot convert "Sammy" (type untyped string) to type int invalid operation: "Sammy" + 27 (mismatched types string and int)

Se quisesse criar a string "Sammy27", poderia fazer isso colocando o número 27 entre aspas ("27") de modo que não mais seria um número inteiro, mas sim uma string. Converter os números em strings para concatenação pode ser útil ao se lidar com códigos de CEP ou números de telefone. Por exemplo, você não quer fazer uma soma entre um código de país e um código de área, mas quer que eles fiquem juntos.

Ao combinar duas ou mais strings através de concatenação, você está criando uma nova string que pode usar ao longo do seu programa.

Armazenando strings e variáveis

Variáveis são símbolos que você pode usar para armazenar dados no programa. Você pode pensar nelas como uma caixa vazia que pode preencher com dados ou valores. As strings são dados, então você pode usá-las para preencher uma variável. Declarar strings como variáveis pode tornar o trabalho com strings mais fácil durante seus programas em Go.

Para armazenar uma string dentro de uma variável, basta atribuir uma variável a uma string. Neste caso, declare s como sua variável:

s := "Sammy likes declaring strings."

Nota: se estiver familiarizado com outras linguagens de programação, você pode ter escrito a variável como sammy. A linguagem Go, entretanto, favorece nomes de variáveis mais curtos. Escolher s para o nome de variável neste caso seria considerado mais apropriado para o estilo no qual a linguagem Go é escrita.

Agora que tem a variável s definida para essa string específica, você pode imprimir a variável dessa forma:

fmt.Println(s)

Então, você receberá o seguinte resultado:

Output
Sammy likes declaring strings.

Ao usar variáveis para substituir strings, não será necessário digitar novamente uma string sempre que quiser usá-la, o que tornará o trabalho e a manipulação das strings mais simples dentro dos seus programas.

Conclusão

Este tutorial revisou os fundamentos do trabalho com o tipo de dados de string na linguagem de programação Go. Criar e imprimir strings, concatenar e replicar strings e armazenar strings em variáveis fornecerá a você os fundamentos para usar strings nos seus programas em Go.

0 Comments

Creative Commons License