Our Blog

Latest News

#34: Type Assertions – Belajar Golang Dari Dasar

Type Assertions

Type assertions adalah sebuah Langkah Demi merubah tipe data tertentu menjadi tipe data yang kita inginkan. Fitur type assertions biasanya sangat Bermanfaat ketika kita berurusan dengan interface Nihil.

Demi menggunakan type assertions, kita cukup mengunakan format seperti ini:

value.(type)

Value adalah variabel atau nilai yang Mau kita ubah tipe datanya, sedangkan type adalah tipe yang Mau digunakan.

Misalnya kode:

package main

import "fmt"

func main() {
	// Membangun variabel name dengan tipe interface Nihil
	var name interface{}

	// mengisi variabel dengan data string,
	// Ketika ini variable Tetap bertipe interface Nihil
	name = "Rizky"

	// melakukan type assertions,
	// merubah tipe interface Nihil menjadi string
	nameString := name.(string)

	fmt.Println(nameString)
}

Ketika menggunakan type assertion, jangan Tiba kita menggunakan tipe data yang salah. Misalnya ketika variabel name yang berisi data string kita ubah mnjadi integer, maka akan terjadi panic di program kita.

var name interface{}

name = "Rizky"

nameString := name.(string) // Ok

nameInt := name.(int) // panic

Menggunakan Switch Expression Demi Type Assertions

Type assertion akan menyebabkan panic Ketika tipe yang diubah Bukan sesuai, hal ini akan berbahaya Kalau kita Bukan melakukan recover Demi panic yang terjadi. Eksis Langkah alternatif yang Dapat kita lakukan Merukapan menggunakan switch expression.

READ:  #2: Database Migration & Model - Laravel URL Shorterner

Misalnya kode:

var age interface{}
	age = 22

	switch dataType := age.(type) {
	case string:
		fmt.Println(dataType, "adalah string")
	case int:
		fmt.Println(dataType, "adalah integer")
	case bool:
		fmt.Println(dataType, "adalah boolean")
	default:
		fmt.Println(dataType, "belum tau")
	}

Kode age.(type) digunakan Demi mendapatkan tipe dari variabel age. Hasil yang didapatkan kemudian digunakan Demi pengecekan pada switch expression Demi ditangani dengan kode yang berbeda antara tipe string, integer, boolean, dan tipe lain.

Berikutnya #35: Pointer

#1 Jasa Social Media Marketing & Management
New Produk Development: Pengertian, Fungsi, dan 7 Tahapannya