package main

import "fmt"

// tampilkan menerima nilai bertipe apa pun melalui interface kosong.
func tampilkan(v interface{}) {
	fmt.Printf("tipe: %T, nilai: %v\n", v, v)
}

func main() {
	tampilkan(42)
	tampilkan("belajar Go")
	tampilkan(3.14)
	tampilkan([]string{"io", "fmt", "os"})
	tampilkan(struct{ Kota string }{Kota: "Bandung"})

	// Tipe asli tidak hilang: %T tetap melaporkan tipe dinamisnya.
	var x interface{} = 42
	if x == 42 {
		fmt.Println("x masih bisa dibandingkan dengan 42")
	}
}
