3 Cara mencari tahu tipe data apa di golang

Tampil 28/August/2019

Bismillah

lagi belajar variabel tipe data di golang, catatan coba cek disini eh coba gogling, karena error muncul saat define string, ./prog.go:13:15: invalid character literal (more than one character) ternyata dimanual booknya dikatakan men-definisi string wajib kudu harus double quote .. "_value_" tetiba terdampar dihalaman stackoverflow

#1 - string formatting

Teknik ini sudah kita gunakan dicatatan ini, pengunnannya simple, contohnya seperti ini:

i := "horror"
fmt.Printf("%T\n", i)

resultnya adalah string tipe datanya.

#2 - package reflect

Teknik ini dengan mengimport paket reflect dahulu, baru bisa kita gunakan, misalkan seperti ini:

import (
	"fmt"
	"reflect"
)

func main() {
	i := "horror"
	fmt.Println(reflect.TypeOf(i))
}

resultnya adalah string juga, silahkan coba di go play ya ini.

#3 - dengan assertions

Assertion itu semacam mengecek value yang sudah didefine sebelumnya, contohnya ini, sumber di tour golang ya

	var i interface{} = "hello"

	s := i.(string)
	fmt.Println(s)

	s, ok := i.(string)
	fmt.Println(s, ok)

	f, ok := i.(float64)
	fmt.Println(f, ok)

	f = i.(float64) // panic
	fmt.Println(f)
	var i interface{} = "horror"
	fmt.Printf("%T\n", i)
	fmt.Println(reflect.TypeOf(i))

	switch i.(type) {
	case string:
		fmt.Println("betul string")
	case int:
		fmt.Println("betul integer")
	}

berdasarkan info e-book dari om noval agung, penggunakan switch - case hanya digunakan untuk mendeteksi tipe data konkrit yang bertipe interface{}. silahkan cek di playgroundnya ya.

yaps sekian, have a nice day!