Deklarasi Functions dimulai dengan kata kunci func diikuti oleh functionname. Parameter ditentukan antara (and) diikuti oleh jenis fungsi yang returntype. Sintaks untuk menentukan parameter adalah nama parameter diikuti oleh jenisnya. Sejumlah parameter dapat ditentukan seperti (tipe parameter1, tipe parameter2). Lalu ada blok kode antara {and} yang merupakan isi dari fungsi tersebut.
Suatu fungsi dapat digunakan dengan cara-cara berikut:
- functions as values – Bahasa pemrograman Go menyediakan fleksibilitas untuk membuat fungsi dengan cepat dan menggunakannya sebagai nilai. Pada contoh berikut, saya telah menginisialisasi variabel dengan definisi fungsi. Tujuan dari variabel fungsi ini adalah hanya untuk menggunakan fungsi inbuilt math.sqrt (). Misalnya –
12345678910111213package mainimport ("fmt" "math")func main(){/* mendeklarasikan sebuah function variable */getSquareRoot := func(x float64) float64 {return math.Sqrt(x)}/* menggunakan function */fmt.Println(getSquareRoot(9))}
Ketika kode di atas dikompilasi dan dieksekusi, ia menghasilkan hasil sebagai berikut –
13 - function closure – Bahasa pemrograman Go mendukung fungsi anonim yang dapat bertindak sebagai penutupan fungsi. Fungsi anonim digunakan ketika kita ingin mendefinisikan fungsi sebaris tanpa memberikan nama apa pun padanya.Dalam contoh kami, kami membuat fungsi getSequence () yang mengembalikan fungsi lain. Tujuan dari fungsi ini adalah untuk menutup variabel i dari fungsi atas untuk membentuk penutupan. Misalnya –
1234567891011121314151617181920212223242526package mainimport "fmt"func getSequence() func() int {i:=0return func() int {i+=1return i}}func main(){/* nextNumber is now a function with i as 0 */nextNumber := getSequence()/* invoke nextNumber to increase i by 1 and return the same */fmt.Println(nextNumber())fmt.Println(nextNumber())fmt.Println(nextNumber())/* create a new sequence and see the result, i is 0 again*/nextNumber1 := getSequence()fmt.Println(nextNumber1())fmt.Println(nextNumber1())}
Ketika kode di atas dikompilasi dan dieksekusi, ia akan menghasilkan hasil sebagai berikut –
1234512312 - Method – Bahasa pemrograman Go mendukung jenis fungsi khusus yang disebut Method. Dalam sintaks deklarasi Method, “penerima” hadir untuk mewakili container functions. Penerima ini dapat digunakan untuk memanggil fungsi menggunakan “.” operator. Misalnya –
123func (variable_name variable_data_type) function_name() [return_type]{/* function body*/}
contoh –
123456789101112131415161718192021package mainimport ("fmt""math")/* define a circle */type Circle struct {x,y,radius float64}/* define a method for circle */func(circle Circle) area() float64 {return math.Pi * circle.radius * circle.radius}func main(){circle := Circle{x:0, y:0, radius:5}fmt.Printf("Circle area: %f", circle.area())}
Ketika kode di atas dikompilasi dan dieksekusi, ia menghasilkan hasil sebagai berikut –
1Circle area: 78.539816
Oke itulah tadi pembahsan saya tentang Pengertian Functions dalam Bahasa Pemrograman Golang pada golang semoga bermanfaat.