Materi
Tipe dasar yang paling sering dipakai: int untuk bilangan bulat, float64 untuk bilangan pecahan, string untuk teks, dan bool untuk true atau false. Pembagian dua int menghasilkan int dengan bagian pecahan dibuang: 7 / 2 bernilai 3. Sisanya diambil dengan operator %, jadi 7 % 2 bernilai 1. Hasil pecahan hanya muncul bila operannya float64.
Go tidak pernah mengubah tipe secara diam-diam. Mengalikan harga bertipe int dengan diskon bertipe float64 ditolak dengan pesan mismatched types int and float64. Konversi ditulis eksplisit dengan nama tipe seperti memanggil fungsi: float64(harga) * diskon menghasilkan float64, dan int(x) membuang bagian pecahan x. Perhatikan letak konversinya: float64(7 / 2) bernilai 3, karena pembagian bulat sudah terjadi sebelum dikonversi.
package main
import (
"fmt"
"strconv"
)
func main() {
harga := 15000
diskon := 0.2
fmt.Println(float64(harga) * diskon) // 3000
fmt.Println(7/2, 7%2, float64(7)/2) // 3 1 3.5
fmt.Println("Meja " + strconv.Itoa(12)) // Meja 12
fmt.Println("Meja " + fmt.Sprint(12)) // Meja 12
}Angka diubah menjadi teks dengan strconv.Itoa atau fmt.Sprint. Konversi string(12) memang lolos kompilasi, tetapi hasilnya satu karakter dengan kode Unicode 12, bukan teks "12"; go vet memperingatkan konversi seperti itu.