package main

import (
	"fmt"
	"maps"
	"slices"
)

func main() {
	// Semua fungsi package slices generik: satu implementasi
	// bekerja untuk []int, []string, dan tipe lainnya.
	angka := []int{42, 7, 19, 42, 3}

	slices.Sort(angka)
	fmt.Println("Terurut   :", angka)
	fmt.Println("Posisi 19 :", slices.Index(angka, 19))
	fmt.Println("Ada 42    :", slices.Contains(angka, 42))

	teks := []string{"siti", "budi", "dewi"}
	slices.Sort(teks)
	fmt.Println("Terurut   :", teks)
	fmt.Println("Ada budi  :", slices.Contains(teks, "budi"))

	// maps.Keys mengembalikan iterator kunci map;
	// slices.Sorted mengurutkan hasilnya agar output deterministik.
	stok := map[string]int{"jeruk": 8, "apel": 12, "mangga": 15}
	for _, buah := range slices.Sorted(maps.Keys(stok)) {
		fmt.Printf("%-7s: %d\n", buah, stok[buah])
	}
}
