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

bookConversão de Tipo Básica

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

Existem dois tipos de conversões de tipo ou typecasting. Um deles é o Typecasting Implícito. O typecasting implícito ocorre quando o Go converte automaticamente um tipo para outro quando é seguro e não há ambiguidade. Por exemplo, quando atribuímos um valor inteiro a uma variável do tipo float, este é tratado como um float automaticamente, 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 é o Casting de Tipo Explícito, que ocorre quando o programador converte dados ou expressões de um tipo para outro de forma explícita. A sintaxe para o casting de tipo explícito é tipoDesejado(expressao), 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 em um int usando a conversão explícita de tipo. Como resultado, a parte decimal do número original é descartada e apenas o valor integral 7 é armazenado em number2. É importante notar que, neste caso, alguns dados são perdidos, especificamente a parte decimal do número (0.9). No entanto, fizemos essa escolha explicitamente.

Da mesma forma, podemos converter um rune em uma string. No capítulo Runes, exploramos um programa que resultou no valor de um Rune, que era um número. No entanto, podemos exibir o equivalente em caractere de um Rune convertendo-o 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 podemos 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 notar que também não podemos converter uma string contendo um único caractere em um 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 seguintes opções é a sintaxe correta para conversão de tipos 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

Awesome!

Completion rate improved to 1.96

bookConversão de Tipo Básica

Deslize para mostrar o menu

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

Existem dois tipos de conversões de tipo ou typecasting. Um deles é o Typecasting Implícito. O typecasting implícito ocorre quando o Go converte automaticamente um tipo para outro quando é seguro e não há ambiguidade. Por exemplo, quando atribuímos um valor inteiro a uma variável do tipo float, este é tratado como um float automaticamente, 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 é o Casting de Tipo Explícito, que ocorre quando o programador converte dados ou expressões de um tipo para outro de forma explícita. A sintaxe para o casting de tipo explícito é tipoDesejado(expressao), 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 em um int usando a conversão explícita de tipo. Como resultado, a parte decimal do número original é descartada e apenas o valor integral 7 é armazenado em number2. É importante notar que, neste caso, alguns dados são perdidos, especificamente a parte decimal do número (0.9). No entanto, fizemos essa escolha explicitamente.

Da mesma forma, podemos converter um rune em uma string. No capítulo Runes, exploramos um programa que resultou no valor de um Rune, que era um número. No entanto, podemos exibir o equivalente em caractere de um Rune convertendo-o 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 podemos 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 notar que também não podemos converter uma string contendo um único caractere em um 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 seguintes opções é a sintaxe correta para conversão de tipos 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