Conversã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
1var 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
12345678package 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
123456789package 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
12var 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
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 1.96
Conversã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
1var 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
12345678package 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
123456789package 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
12var 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
1234567package main import "fmt" func main() { var text string = "a"; fmt.Printf(rune(text)) // Error here }
Obrigado pelo seu feedback!