CLOSURE GOLANG

CLOSURE GOLANG

CLOSURE GOLANG

Dimungkinkan untuk membuat fungsi di dalam fungsi:
KALIAN BISA MENCOBANYA KLIK DISINI
func main() { 
add := func(x, y int) int { 
return x + y } 
fmt.Println(add(1,1)) }

CLOSURE GOLANG
hasil coding

add adalah variabel lokal yang memiliki tipe func (int, int) int (fungsi yang mengambil dua int dan mengembalikan int).

Ketika kamu membuat fungsi lokal seperti ini kamu juga memiliki akses ke variabel lokal lainnya (ingat ruang lingkup dari materi sebelumnya):

func main() { 
x := 0 
increment := func() int {
 x++ 
return x } 
fmt.Println(increment()) 
fmt.Println(increment()) }

closure golang
hasil coding


increment menambahkan 1 ke variabel x yang didefinisikan dalam ruang lingkup fungsi utama.

Variabel x ini dapat diakses dan dimodifikasi oleh fungsi increment. Inilah mengapa pertama kalinya kita memanggil increment, kita melihat 1 ditampilkan, untuk kedua kalinya kita menyebutnya, kita melihat 2 ditampilkan.

Fungsi seperti ini secara bersamaan dengan variabel non-lokal referensi dikenal sebagai closure.

Dalam hal ini increment dan variabel x membentuk closure.

Salah satu cara menggunakan closure adalah dengan menulis fungsi yang mengembalikan fungsi lain yang saat dipanggil dapat menghasilkan urutan angka. Misalnya coding dibawah ini adalah cara bagaimana kita dapat menghasilkan semua nomor genap:

func makeEvenGenerator() func() uint { 
i := uint(0) 
return func() (ret uint) { 
ret=i 
i+=2 
return } } 
func main() { 
nextEven := makeEvenGenerator() 
fmt.Println(nextEven()) // 0 
fmt.Println(nextEven()) // 2 
fmt.Println(nextEven()) // 4
 }

closure golang
hasil coding


makeEvenGenerator mengembalikan fungsi yang menghasilkan angka genap, setiap kali dipanggil menambah 2 ke variabel i lokal yang tidak seperti variabel lokal normal hanya bertahan antara panggilan, untuk lebih jelas silakan saja ganti angka 4 menjadi 5.




MATERI GOLANG

Jika kamu baru di pembelajaran golang, silakan untuk belajar dari materi pertama 

Berlangganan update artikel terbaru via email:

0 Response to "CLOSURE GOLANG"

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel