Pacotes fmt e strings
Formate a saída e manipule strings
Pacotes fmt e strings é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Go Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Go Academy inclui 4 aulas no total.
Visão geral do pacote fmt
O pacote fmt implementa E/S formatada. Principais funções:
fmt.Print,fmt.Println,fmt.Printf— escrevem na saída padrãofmt.Sprint,fmt.Sprintf,fmt.Sprintln— retornam cadeias de caracteresfmt.Fprint,fmt.Fprintf— escrevem em qualquer io.Writerfmt.Scan,fmt.Scanf— leem da entrada padrão
Verbos de formatação do fmt
Verbos de formatação comuns para fmt.Printf:
package main
import "fmt"
func main() {
name := "Gopher"
age := 15
score := 98.6
fmt.Printf("%s is %d years old\n", name, age)
fmt.Printf("Score: %.1f%%\n", score)
fmt.Printf("Type: %T, Value: %v\n", age, age)
fmt.Printf("Hex: %x, Binary: %b\n", 255, 255)
fmt.Printf("Padded: %10s|%-10s\n", name, name)
}fmt.Sprintf para construir cadeias de caracteres
fmt.Sprintf retorna uma cadeia de caracteres formatada sem imprimi-la — algo útil para construir cadeias de caracteres:
package main
import "fmt"
func formatUser(name string, age int) string {
return fmt.Sprintf("User{name: %q, age: %d}", name, age)
}
func main() {
fmt.Println(formatUser("Alice", 30))
// User{name: "Alice", age: 30}
// %q adds quotes; %+v prints struct field names
type Point struct{X, Y int}
p := Point{1, 2}
fmt.Printf("%+v\n", p) // {X:1 Y:2}
}fmt.Errorf para formatar erros
fmt.Errorf cria valores de erro formatados:
package main
import "fmt"
func getUser(id int) error {
return fmt.Errorf("getUser(%d): user not found", id)
}
func main() {
err := getUser(42)
fmt.Println(err) // getUser(42): user not found
// Wrap errors with %w for unwrapping:
base := fmt.Errorf("base error")
wrapped := fmt.Errorf("context: %w", base)
fmt.Println(wrapped)
}Pacote strings: funções comuns
O pacote strings fornece funções para manipular cadeias de caracteres:
package main
import ("fmt"; "strings")
func main() {
s := " Hello, Go World! "
fmt.Println(strings.TrimSpace(s)) // "Hello, Go World!"
fmt.Println(strings.ToUpper(s)) // " HELLO, GO WORLD! "
fmt.Println(strings.ToLower(s)) // " hello, go world! "
fmt.Println(strings.Contains(s, "Go")) // true
fmt.Println(strings.HasPrefix(s, " Hel")) // true
fmt.Println(strings.Count(s, "l")) // 3
}strings.Split e strings.Join
strings.Split divide uma cadeia de caracteres, e strings.Join une uma fatia:
package main
import ("fmt"; "strings")
func main() {
csv := "alice,bob,carol,dave"
names := strings.Split(csv, ",") // ["alice" "bob" "carol" "dave"]
fmt.Println(names)
upper := make([]string, len(names))
for i, n := range names {
upper[i] = strings.ToUpper(n)
}
result := strings.Join(upper, " | ")
fmt.Println(result) // ALICE | BOB | CAROL | DAVE
}strings.Replace e strings.ReplaceAll
Substitua ocorrências de uma subcadeia:
package main
import ("fmt"; "strings")
func main() {
s := "foo bar foo baz foo"
// Replace first 2 occurrences
fmt.Println(strings.Replace(s, "foo", "XXX", 2))
// XXX bar XXX baz foo
// Replace all
fmt.Println(strings.ReplaceAll(s, "foo", "GO"))
// GO bar GO baz GO
}strings.Builder para concatenação eficiente
Utilize strings.Builder para construir cadeias de caracteres com eficiência — isso evita alocar uma nova cadeia de caracteres para cada concatenação:
package main
import ("fmt"; "strings")
func join(parts []string, sep string) string {
var sb strings.Builder
for i, p := range parts {
if i > 0 { sb.WriteString(sep) }
sb.WriteString(p)
}
return sb.String()
}
func main() {
fmt.Println(join([]string{"a", "b", "c"}, "-")) // a-b-c
}strings.NewReader e strings.Reader
strings.NewReader cria um io.Reader a partir de uma cadeia de caracteres — algo útil para testar funções que aceitam leitores:
package main
import ("fmt"; "io"; "strings")
func readAll(r io.Reader) string {
data, _ := io.ReadAll(r)
return string(data)
}
func main() {
r := strings.NewReader("Hello from a string reader")
fmt.Println(readAll(r))
// Also: strings.NewReplacer for multiple replacements
rep := strings.NewReplacer("<", "<", ">", ">")
fmt.Println(rep.Replace("<b>bold</b>"))
}strings.Fields e strings.Map
Outras funções úteis de strings:
package main
import ("fmt"; "strings")
func main() {
// Fields splits on any whitespace (like awk)
words := strings.Fields(" one two three ")
fmt.Println(words) // [one two three]
// Map applies a function to each rune
rot13 := func(r rune) rune {
if r >= 'a' && r <= 'z' { return 'a' + (r-'a'+13)%26 }
if r >= 'A' && r <= 'Z' { return 'A' + (r-'A'+13)%26 }
return r
}
fmt.Println(strings.Map(rot13, "Hello, World!"))
}Verificação rápida
Qual função deve ser utilizada para concatenar muitas cadeias de caracteres com eficiência em Go?
Recapitulação: fmt e strings
Resumo:
fmt.Printf/Sprintfpara saída/cadeias de caracteres formatadas com verbos de formatação (%s %d %f %v %T %q)fmt.Errorfpara erros formatados,%wpara encapsular errosstrings.Split/Join,Contains,Replace,TrimSpace,ToUpper/Lowerstrings.Builderpara concatenação eficientestrings.NewReaderpara utilizar uma cadeia de caracteres comoio.Reader
Aprenda Go com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 51
- Aulas
- 203
Perguntas Frequentes
A aula “Pacotes fmt e strings” é grátis?
Sim — o texto completo de “Pacotes fmt e strings” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Go Academy, atualize para CoddyKit PRO. O curso de Go Academy inclui 4 aulas no total.
O que vou aprender em “Pacotes fmt e strings”?
Formate a saída e manipule strings Você pratica Go Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Go Academy?
Nenhuma experiência prévia é necessária. Go Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Pacotes fmt e strings”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Go Academy?
Sim. Cada aula de Go Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Pacotes fmt e strings
- strconv, math e sort
- Fundamentos do pacote time
- Pacotes os e filepath