Assim como em outras linguagens, Golang possui a característica de casting
                de tipos de dados numéricos. Porém, a linguagem Go não permite a conversão implícita entre 
                tipo de dados fazendo uma atribuição direta.
            
            Exemplo 1: Simular casting implícito em C
            package main
func main() {
	var valor1 uint16 = 256 //2 bytes de tamanho
	var valor2 uint8 = 255 	// 1 byte de tamanho
	// casting/atribuição
	valor1 = valor2 //Erro: cannot use valor2 (variable of type uint8) as uint16 value in assignment
}
            Saída
            ./prog.go:4:6: declared and not used: valor1
./prog.go:10:11: cannot use valor2 (variable of type uint8) as uint16 value in assignment
            
                Para a casting entre tipos numéricos precisamos de utilizar o operador de 
                conversão/casting de cada tipo:
            
            Sintaxe
            nome_tipo_dado( valor )
            Exemplo 2
            
package main
func main() {
	var valor1 uint16 = 256
	var valor2 uint8 = 0
	valor2 = uint8(valor1) //conversão usando cast
}
            Saída
            
./prog.go:5:6: declared and not used: valor2
            
                Como o tipo de dado uint8 armazena apenas 1 byte, no casting acima, 
                apenas o último byte do inteiro foi atribuído a variável valor2 resultando 
                em um valor 0. 
            
            
                Trabalhar com valores float também é feito da mesma forma. Podemos por exemplo 
                recuperar a parte inteiro de um valor float como abaixo:
            
            Exemplo 2
            
package main
func main() {
	var valor_float float32 = 10.99
	var valorInt = uint32(valor_float) //parte inteira 10
	var decimal float32 = valor_float - float32(valorInt)
}
            Saída
            
./prog.go:6:6: declared and not used: decimal