golang closure
Golang closure

Closure adalah sebuah function yang bisa disimpan dalam variable. Closure merupakan anonymous function atau fungsi tanpa nama. Biasanya closure sering digunakan untuk operasi sekali pakai atau dipakai hanya pada blok tertentu.

Salah satu contoh penggunaan closure disimpan didalam function adalah sebagai berikut:

import "fmt"

func main() {
    getMax := func(n []int) int {
       var max int
       for _, val := range n {
          switch {
             case val > max:
                 max = val
          }
       }
       return max
    }

    numbers := []int{2, 2, 4, 44}
    maxNumber := getMax(numbers)
    fmt.Printf("max number: %#v", maxNumber)
}

Dari contoh code diatas akan menghasilkan output sebagai berikut:

Closure ini hampir di semua bahasa pemrograman ada, jadi bagi yang base programing language nya bukan Golang, tetap bisa menerapkan closure sesuai syntax bahasa pemrogram yang digunakan.