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

bookConversão Básica de Tipos

Typecasting é o processo de converter dados de um tipo para outro. No entanto, é importante observar que nem sempre é possível converter dados de um tipo para outro. Por exemplo, podemos converter um float para um int e vice-versa. Porém, não faria sentido converter uma string para um int, e, portanto, isso não é possível.

Existem dois tipos de conversões de tipo ou typecasting. Um deles é o Type Casting Implícito. O type casting implícito ocorre quando o Go converte automaticamente um tipo para outro quando é seguro e não ambíguo. Por exemplo, quando atribuimos um valor inteiro a uma variável do tipo float, ele é tratado automaticamente como float, pois nenhum dado pode ser perdido durante a conversão (10 é o mesmo que 10.0):

index.go

index.go

copy
1
var myFloat float32 = 10 // A valid statement

O outro tipo de conversão de tipo é a Conversão Explícita de Tipo, que ocorre quando o programador converte explicitamente dados ou expressões de um tipo para outro. A sintaxe para conversão explícita de tipo é desiredType(expression), por exemplo:

index.go

index.go

copy
12345678
package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }

No programa acima, convertemos um valor float32 para um int utilizando conversão explícita de tipo. Como resultado, a parte decimal do número original é descartada e apenas o valor inteiro 7 é armazenado em number2. É importante observar que, neste caso, parte dos dados é perdida, especificamente a parte decimal do número (0.9). No entanto, essa escolha foi feita de forma explícita.

Da mesma forma, podemos converter um rune em uma string. No capítulo Runas, exploramos um programa que exibia o valor de uma Runa, que era um número. No entanto, podemos exibir o caractere equivalente de uma Runa convertendo-a em uma string:

index.go

index.go

copy
123456789
package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }

No entanto, não é possível converter uma string em um rune:

index.go

index.go

copy
12
var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune

É importante observar que também não podemos converter uma string contendo um único caractere em uma rune:

index.go

index.go

copy
1234567
package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
question mark

Qual das alternativas a seguir apresenta a sintaxe correta para conversão de tipo em Go?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 6

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 why we can't convert a string to a rune in Go?

Are there any workarounds for converting a string to a rune?

What happens if I try to convert a string to a rune in my code?

Awesome!

Completion rate improved to 1.96

bookConversão Básica de Tipos

Deslize para mostrar o menu

Typecasting é o processo de converter dados de um tipo para outro. No entanto, é importante observar que nem sempre é possível converter dados de um tipo para outro. Por exemplo, podemos converter um float para um int e vice-versa. Porém, não faria sentido converter uma string para um int, e, portanto, isso não é possível.

Existem dois tipos de conversões de tipo ou typecasting. Um deles é o Type Casting Implícito. O type casting implícito ocorre quando o Go converte automaticamente um tipo para outro quando é seguro e não ambíguo. Por exemplo, quando atribuimos um valor inteiro a uma variável do tipo float, ele é tratado automaticamente como float, pois nenhum dado pode ser perdido durante a conversão (10 é o mesmo que 10.0):

index.go

index.go

copy
1
var myFloat float32 = 10 // A valid statement

O outro tipo de conversão de tipo é a Conversão Explícita de Tipo, que ocorre quando o programador converte explicitamente dados ou expressões de um tipo para outro. A sintaxe para conversão explícita de tipo é desiredType(expression), por exemplo:

index.go

index.go

copy
12345678
package main import "fmt" func main() { var number1 float32 = 7.9 var number2 int = int(number1) fmt.Println(number2) // Outputs 7 }

No programa acima, convertemos um valor float32 para um int utilizando conversão explícita de tipo. Como resultado, a parte decimal do número original é descartada e apenas o valor inteiro 7 é armazenado em number2. É importante observar que, neste caso, parte dos dados é perdida, especificamente a parte decimal do número (0.9). No entanto, essa escolha foi feita de forma explícita.

Da mesma forma, podemos converter um rune em uma string. No capítulo Runas, exploramos um programa que exibia o valor de uma Runa, que era um número. No entanto, podemos exibir o caractere equivalente de uma Runa convertendo-a em uma string:

index.go

index.go

copy
123456789
package main import "fmt" func main() { var char rune = 'a' fmt.Println(char) // Outputs 97 fmt.Println(string(char)) // Outputs 'a' }

No entanto, não é possível converter uma string em um rune:

index.go

index.go

copy
12
var myString string = "A string value" fmt.Println(rune(myString)) // Error: cannot convert myString (variable of type string) to type rune

É importante observar que também não podemos converter uma string contendo um único caractere em uma rune:

index.go

index.go

copy
1234567
package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
question mark

Qual das alternativas a seguir apresenta a sintaxe correta para conversão de tipo em Go?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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