DEV Community

Cover image for Golang - Conversão de tipos
Diego Alves
Diego Alves

Posted on

Golang - Conversão de tipos

A conversão de tipos é o ato de forçar uma expressão a utilizar e retornar um determinado tipo. Também chamamos esta modalidade de “Casting”. A conversão de um tipo de dado em número ou em literal é muito comum em situações de programação.

Como o Go é uma linguagem de tipagem estática, os tipos de dados são vinculados às variáveis e não aos valores. Isso significa que, se você definir uma variável como int, ela só poderá ser uma int, você não poderá atribuir-lhe uma string sem converter o tipo de dados da variável.

Inteiro para float

No exemplo abaixo, iremos converter um número inteiro para ponto flutuante, ao final a variável numero2 ficará com o valor 100.00 ao invés de 100.

var numero1 int64 = 100
var numero2 float64 = float64(numero1)
Enter fullscreen mode Exit fullscreen mode

Float para inteiro

O Go pode converter os floats em inteiros, mas o programa perderá a precisão do float.

Envolver os floats em inteiros, ou um de seus tipos de dados de arquitetura independente, funciona de maneira similar à que usou para converter de um tipo inteiro a outro tipo.

var numero1 float64 = 99.9
var numero2 int = int(numero1)
Enter fullscreen mode Exit fullscreen mode

A variável numero2 terá o valor 99 ao invés 99.9.

Números para strings

Para converter números em strings, podemos usar o método strconv.Itoa, ele faz parte do pacote strconv. Ele faz a conversão de números ou variáveis para string.

Inicialmente faremos a conversão de um número inteiro para strings através do método strconv.Itoa:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    numero := strconv.Itoa(5)
    fmt.Printf(numero)
}
Enter fullscreen mode Exit fullscreen mode

No caso da necessidade de converter um float em string, podemos usar o método ftm.Sprint, a partir do pacote fmt.

package main

import (
    "fmt"
)

func main() {
    fmt.Println(fmt.Sprint(421.034))
}
Enter fullscreen mode Exit fullscreen mode

Strings para números


That's all folks! ✌️

Latest comments (0)