Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Formatação de Strings | Tipos de Dados
Introdução ao Golang

bookFormatação de Strings

Agora que aprendemos sobre todos os tipos de dados básicos, podemos explorar a formatação de strings. Em programação, formatação de strings envolve incorporar valores de variáveis em strings.

Nota

A instrução import é utilizada para importar pacotes em uma aplicação Go. Um pacote é uma coleção de arquivos-fonte Go relacionados que colaboram para oferecer um conjunto de funcionalidades ou serviços. O pacote fmt fornece funções que permitem formatar strings.

Uma das funções do pacote fmt que temos utilizado é a função Println. A função Println exibe o texto de saída em uma nova linha a cada vez. No entanto, existe uma função chamada Print que exibe a saída sem pular para uma nova linha:

index.go

index.go

copy
12345678
package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }

De modo geral, podemos utilizar essas funções para inserir valores de variáveis em dados do tipo string utilizando o seguinte método:

index.go

index.go

copy
123456789
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Println("There are", n, "cats,", in, "of them are inside the house while", out, "are outside.") }

No entanto, esse método não é muito eficiente, pois é necessário dividir a string em vários segmentos para inserir variáveis nos locais relevantes, o que pode se tornar trabalhoso em casos mais complexos. A função Printf resolve esse problema e simplifica o processo de exibição de saída formatada.

A função Printf recebe uma string de formato como seu primeiro argumento, seguida pelos valores (ou variáveis) a serem inseridos na string de formato. Uma string de formato contém marcadores de posição (especificadores de formato) que definem o formato desejado da saída.

A seguir está um exemplo:

index.go

index.go

copy
12345678910
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Printf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) }

Conforme ilustrado pelo exemplo, Especificadores de Formato são símbolos que servem como marcadores de posição para tipos de dados específicos dentro de uma string. Existe um especificador de formato distinto para cada tipo de dado. A tabela abaixo fornece uma lista dos especificadores de formato básicos:

Especificador de FormatoTipo de Dado
%dInteger
%sString
%fFloat
%tBoolean
%cCharacter (or Rune)

As variáveis substituem os respectivos marcadores de posição na string de formato. Na saída do exemplo acima, o primeiro %d é substituído pelo valor de n. Da mesma forma, o segundo é substituído pela variável correspondente, que é in, e o último %d é substituído pelo valor de out.

Também é possível formatar uma string e armazená-la em uma variável do tipo string utilizando a função Sprintf, que formata uma string e retorna o resultado para armazenamento ou uso posterior, ao invés de exibi-la imediatamente na tela:

index.go

index.go

copy
123456789101112
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in var text string = fmt.Sprintf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) fmt.Println("Text:", text) }

Aqui está um exemplo mais complexo que incorpora vários conceitos abordados anteriormente em um único programa. Será um exercício valioso revisar o programa a seguir e sua saída para aprimorar suas habilidades de leitura de código:

index.go

index.go

copy
12345678910
package main import "fmt" func main() { var numA float32 = 17.7 var numB int = 10 var str string = fmt.Sprintf("It is %t that 'a' is bigger than 'b'.", numA > float32(numB)) fmt.Printf("The numbers 'a' and 'b' are %f and %d. %s", numA, numB, str) }

Em alguns casos, o compilador realiza conversão implícita de tipo para corresponder valores aos especificadores de formato, conforme demonstrado no exemplo a seguir:

index.go

index.go

copy
1234567
package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }

O rune 'char' é exibido tanto como caractere quanto como valor numérico. No entanto, em alguns casos, o compilador pode gerar um erro. Por exemplo, o código a seguir resultará em uma saída inválida porque um 'float' não pode ser convertido implicitamente em um 'int':

index.go

index.go

copy
12
var value float32 = 5.7 fmt.Printf("%d", value)
question mark

Qual será a saída do programa abaixo?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 7

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you explain more about how to use different format specifiers?

What happens if I use the wrong format specifier for a variable?

Can you show more examples of string formatting in Go?

Awesome!

Completion rate improved to 1.96

bookFormatação de Strings

Deslize para mostrar o menu

Agora que aprendemos sobre todos os tipos de dados básicos, podemos explorar a formatação de strings. Em programação, formatação de strings envolve incorporar valores de variáveis em strings.

Nota

A instrução import é utilizada para importar pacotes em uma aplicação Go. Um pacote é uma coleção de arquivos-fonte Go relacionados que colaboram para oferecer um conjunto de funcionalidades ou serviços. O pacote fmt fornece funções que permitem formatar strings.

Uma das funções do pacote fmt que temos utilizado é a função Println. A função Println exibe o texto de saída em uma nova linha a cada vez. No entanto, existe uma função chamada Print que exibe a saída sem pular para uma nova linha:

index.go

index.go

copy
12345678
package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }

De modo geral, podemos utilizar essas funções para inserir valores de variáveis em dados do tipo string utilizando o seguinte método:

index.go

index.go

copy
123456789
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Println("There are", n, "cats,", in, "of them are inside the house while", out, "are outside.") }

No entanto, esse método não é muito eficiente, pois é necessário dividir a string em vários segmentos para inserir variáveis nos locais relevantes, o que pode se tornar trabalhoso em casos mais complexos. A função Printf resolve esse problema e simplifica o processo de exibição de saída formatada.

A função Printf recebe uma string de formato como seu primeiro argumento, seguida pelos valores (ou variáveis) a serem inseridos na string de formato. Uma string de formato contém marcadores de posição (especificadores de formato) que definem o formato desejado da saída.

A seguir está um exemplo:

index.go

index.go

copy
12345678910
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Printf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) }

Conforme ilustrado pelo exemplo, Especificadores de Formato são símbolos que servem como marcadores de posição para tipos de dados específicos dentro de uma string. Existe um especificador de formato distinto para cada tipo de dado. A tabela abaixo fornece uma lista dos especificadores de formato básicos:

Especificador de FormatoTipo de Dado
%dInteger
%sString
%fFloat
%tBoolean
%cCharacter (or Rune)

As variáveis substituem os respectivos marcadores de posição na string de formato. Na saída do exemplo acima, o primeiro %d é substituído pelo valor de n. Da mesma forma, o segundo é substituído pela variável correspondente, que é in, e o último %d é substituído pelo valor de out.

Também é possível formatar uma string e armazená-la em uma variável do tipo string utilizando a função Sprintf, que formata uma string e retorna o resultado para armazenamento ou uso posterior, ao invés de exibi-la imediatamente na tela:

index.go

index.go

copy
123456789101112
package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in var text string = fmt.Sprintf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) fmt.Println("Text:", text) }

Aqui está um exemplo mais complexo que incorpora vários conceitos abordados anteriormente em um único programa. Será um exercício valioso revisar o programa a seguir e sua saída para aprimorar suas habilidades de leitura de código:

index.go

index.go

copy
12345678910
package main import "fmt" func main() { var numA float32 = 17.7 var numB int = 10 var str string = fmt.Sprintf("It is %t that 'a' is bigger than 'b'.", numA > float32(numB)) fmt.Printf("The numbers 'a' and 'b' are %f and %d. %s", numA, numB, str) }

Em alguns casos, o compilador realiza conversão implícita de tipo para corresponder valores aos especificadores de formato, conforme demonstrado no exemplo a seguir:

index.go

index.go

copy
1234567
package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }

O rune 'char' é exibido tanto como caractere quanto como valor numérico. No entanto, em alguns casos, o compilador pode gerar um erro. Por exemplo, o código a seguir resultará em uma saída inválida porque um 'float' não pode ser convertido implicitamente em um 'int':

index.go

index.go

copy
12
var value float32 = 5.7 fmt.Printf("%d", value)
question mark

Qual será a saída do programa abaixo?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 7
some-alt