Tipe Data Go
Di bawah ini adalah semua tipe built-in dalam bahasa Go untuk referensi lebih banyak detail dapat pergi ke Referensi Manual-Tipe.
Tipe Boolean
Tipe boolean hanya memiliki nilai benar dan salah.
| Tipe | Deskripsi |
|---|---|
bool | true adalah nilai benar false adalah nilai salah |
TIP
Di Go integer 0 tidak mewakili nilai salah integer non-nol juga tidak dapat mewakili nilai benar yaitu angka tidak dapat menggantikan nilai boolean untuk melakukan judgment logika keduanya adalah tipe yang sepenuhnya berbeda.
Tipe Integer
Go mengalokasikan tipe berbeda untuk integer dengan bit berbeda terutama dibagi menjadi integer tanpa tanda dan integer bertanda.
| Nomor | Tipe dan Deskripsi |
|---|---|
uint8 | Integer 8 bit tanpa tanda |
uint16 | Integer 16 bit tanpa tanda |
uint32 | Integer 32 bit tanpa tanda |
uint64 | Integer 64 bit tanpa tanda |
int8 | Integer 8 bit bertanda |
int16 | Integer 16 bit bertanda |
int32 | Integer 32 bit bertanda |
int64 | Integer 64 bit bertanda |
uint | Integer tanpa tanda setidaknya 32 bit |
int | Integer setidaknya 32 bit |
uintptr | Setara dengan integer 64 bit tanpa tanda tetapi khusus digunakan untuk menyimpan operasi pointer digunakan untuk menyimpan alamat pointer mati. |
Tipe Floating Point
Floating point IEEE-754 terutama dibagi menjadi floating point presisi tunggal dan floating point presisi ganda.
| Tipe | Tipe dan Deskripsi |
|---|---|
float32 | Floating point 32 bit IEEE-754 |
float64 | Floating point 64 bit IEEE-754 |
Tipe Kompleks
| Tipe | Deskripsi |
|---|---|
complex128 | Bilangan riil dan imajiner 64 bit |
complex64 | Bilangan riil dan imajiner 32 bit |
Tipe Karakter
String bahasa Go sepenuhnya kompatibel dengan UTF-8
| Tipe | Deskripsi |
|---|---|
byte | Setara uint8 dapat mengekspresikan karakter ANSCII |
rune | Setara int32 dapat mengekspresikan karakter Unicode |
string | String adalah urutan byte dapat dikonversi ke tipe []byte yaitu slice byte |
Tipe Turunan
| Tipe | Contoh |
|---|---|
| Array | [5]int array integer dengan panjang 5 |
| Slice | []float64 slice floating point 64 bit |
| Map | map[string]int map dengan kunci tipe string nilai tipe integer |
| Struct | type Gopher struct{} struct Gopher |
| Pointer | *int sebuah pointer integer. |
| Fungsi | type f func() tipe fungsi tanpa parameter tanpa nilai pengembalian |
| Interface | type Gopher interface{} interface Gopher |
| Channel | chan int channel integer |
Nilai Nol
Dalam dokumentasi resmi nilai nol disebut zero value nilai nol tidak hanya nol literal tetapi lebih akurat disebut nilai kosong atau nilai default dari sebuah tipe.
| Tipe | Nilai Nol |
|---|---|
| Tipe numerik | 0 |
| Tipe boolean | false |
| Tipe string | "" |
| Array | Kumpulan nilai nol tipe sesuai dengan panjang tetap |
| Struct | Struct yang field internalnya semuanya nilai nol |
| Slice map fungsi interface channel pointer | nil |
nil
nil mirip dengan none atau null di bahasa lain tetapi tidak sepenuhnya sama. nil hanya nilai nol dari beberapa tipe referensi dan tidak termasuk tipe apa pun dari kode sumber dapat dilihat nil hanya sebuah variabel.
var nil TypeDan pernyataan nil == nil seperti ini tidak dapat dikompilasi.
