Uma string em Go é uma sequência imutável de bytes, que não têm necessariamente de representar carateres.
Um literal de string define-se entre aspas duplas:
const name = "Jane"
As strings podem ser concatenadas com o operador +:
"Jane" + " " + "Austen"
// => "Jane Austen"
Alguns carateres especiais precisam de ser escapados com uma barra invertida à frente, como \t para uma tabulação e \n para uma nova linha dentro de 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 as funções de string, consulta a documentação do pacote strings.
Aqui ficam 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"
Há uma loja de eletrodomésticos chamada "Tech Palace" aqui perto. O dono da loja instalou recentemente um ecrã grande para usar em mensagens de marketing e para mostrar uma saudação especial quando os clientes passam os cartões de fidelização à entrada. O ecrã é composto por muitas pequenas luzes LED e consegue mostrar várias linhas de texto.
O dono da loja precisa da tua ajuda com o código que gera o texto para o novo ecrã.
Para a maioria dos clientes que passam os cartões de fidelização, o dono da loja quer ver "Welcome to the Tech Palace," seguido do nome do cliente em maiúsculas no ecrã.
Implementa a função WelcomeMessage que aceita o nome do cliente como argumento do tipo string e devolve a mensagem pretendida como string.
WelcomeMessage("Judy")
// => Welcome to the Tech Palace, JUDY
Para os clientes fiéis que compram muito na loja, o dono quer tornar o ecrã de boas-vindas mais vistoso, acrescentando uma linha de estrelas antes e depois da mensagem de boas-vindas. Ainda não têm a certeza de quantas estrelas devem estar nas linhas, por isso querem que isso seja configurável.
Escreve uma função AddBorder que aceita uma mensagem de boas-vindas (uma string) e o número de estrelas por linha (do tipo int) como argumentos.
Deve devolver uma string composta por 3 linhas: uma linha com o número desejado de estrelas, depois a mensagem de boas-vindas tal como foi recebida e, por fim, outra linha de estrelas.
AddBorder("Welcome!", 10)
Deve devolver o seguinte:
**********
Welcome!
**********
Antes de instalar este novo ecrã, a loja tinha um ecrã semelhante que só conseguia mostrar linhas estáticas e não configuráveis. O dono gostaria de reutilizar algumas das antigas mensagens de marketing no novo ecrã. No entanto, os dados já incluem uma moldura de estrelas e alguns espaços em branco indesejados. A tua tarefa é limpar as mensagens para que possam ser reutilizadas.
Implementa uma função CleanUpMessage que aceita a mensagem de marketing antiga como string.
A função deve primeiro remover todas as estrelas do texto e, em seguida, remover os espaços em branco no início e no fim do texto restante.
A função deve depois devolver a mensagem limpa.
message := `
**************************
* BUY NOW, SAVE 10% *
**************************
`
CleanUpMessage(message)
// => BUY NOW, SAVE 10%
Inscreve-te no Exercism para aprenderes e dominares Go com 34 conceitos165 exercícios, e mentoria humana real, tudo grátis.