Mengenal Lebih Jauh Mengenai Golang Type Assertions

Golang atau yang juga dikenal sebagai Go merupakan bahasa pemrograman yang didesain dengan penekanan pada kesederhanaan dan efisiensi. Salah satu fitur dari Go yang paling memikat perhatian para programmer adalah type assertions. Bagaimana cara menggunakannya? Yuk, kita bahas lebih lanjut.

Pengertian Golang Type Assertions

Didalam Golang, type assertions adalah proses dimana kita mengubah type dari sebuah interface ke type lain. Seorang programmer dapat menggunakan fitur ini untuk membolehkan value suatu variable untuk disimpan kedalam variable dengan type lain. Jadi, apa maksud dari semua ini?

Sebagai contoh, kita memiliki suatu variable interface bernama i dan kita ingin memastikan bahwa i berisi type integer. Dengan type assertion, kita bisa melakukan hal ini. Proses ini biasa digunakan ketika kita bekerja dengan interfaces, dimana output bisa beragam jenis type.

Contoh Penerapan Code Golang Type Assertions

Mari kita coba praktekkan type assertions dalam kode Golang.

package main

import "fmt"

func main() {
  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)

}

Di bagian kode ini, i adalah interface yang berisi nilai hello. Kita menggunakan type assertion untuk memastikan bahwa i berisi string dan menyimpan nilai tersebut dalam s. Lalu, kita coba lagi dengan type float64 dan mendapatkan hasil panic karena i tidak berisi float64.

Menangani Error dalam Golang Type Assertions

Sebisanya, kita selalu berharap bahwa nilai dalam interface sesuai dengan type yang kita prediksi. Namun, bagaimana jika itu tidak sesuai? Apa yang akan terjadi?

Itulah mengapa kita selalu ingin memastikan untuk menangani kemungkinan error dalam type assertions. Di Golang, kita dapat melakukannya dengan cara menggunakan ok dalam type assertion seperti di contoh kode di atas.

Kesimpulan

Nah, sekarang Anda telah memahami Golang Type Assertions lebih dalam. Fitur ini memberi kita fleksibilitas dalam mengolah interface, namun juga berpotensi menimbulkan error jika tidak digunakan dengan hati-hati.