Dalam Go, fungsi ialah blok kod yang melaksanakan tugas tertentu, yang boleh digunakan semula sepanjang program untuk menjimatkan memori, meningkatkan kebolehbacaan dan menjimatkan masa. Fungsi Golang mungkin atau mungkin tidak mengembalikan nilai kepada pemanggil.

Perkara yang perlu diketahui tentang fungsi di Golang
Contohnya:
package main
import "fmt"
// multiply() nhân 2 số nguyên và trả về kết quả
func multiply(a, b int) int {
return a * b
}
func main() {
result := multiply(5, 10)
fmt.Printf("multiplication: %d", result)
}
Keputusan:
multiplication: 50
Sintaks fungsi dalam Golang
func function_name(Parameter-list)(Return_type) {
// function body...
}
Pengisytiharan fungsi
Dalam Go, fungsi diisytiharkan dengan kata kunci func, diikuti dengan nama, parameter dan jenis pulangan pilihan.
Sintaks
func function_name(Parameter-list)(Return_type) {
// function body...
}
Contoh fungsi darab
func multiply(a, b int) int {
return a * b
}
func: Kata kunci untuk mengisytiharkan fungsi.
nama_fungsi: Nama fungsi, cth. membiak.
Senarai parameter: a, b int—parameter bersama dengan jenisnya.
Return_type: int menentukan jenis pulangan.
Fungsi panggilan
Untuk menggunakan fungsi, hanya panggil fungsi dengan namanya dengan sebarang hujah yang diperlukan. Di sini, darab(5, 10) memanggil fungsi dengan 5 dan 10 sebagai argumen.
Contohnya
result := multiply(5, 10)
fmt.Printf("Result of multiplication: %d", result)
Hujah fungsi
Go menyokong dua cara untuk menghantar parameter kepada fungsi: Panggilan mengikut nilai dan Panggil dengan rujukan. Secara lalai, Go menggunakan panggilan mengikut nilai, yang bermaksud nilai disalin dan perubahan dalam fungsi tidak menjejaskan pembolehubah pemanggil.
Panggilan mengikut nilai
Dalam panggilan mengikut nilai, nilai argumen disalin ke dalam parameter fungsi, jadi perubahan dalam fungsi tidak menjejaskan pembolehubah asal.
Contohnya:
package main
import "fmt"
func multiply(a, b int) int {
a = a * 2 // chỉnh sửa bên trong hàm này
return a * b
}
func main() {
x := 5
y := 10
fmt.Printf("Before: x = %d, y = %d\n", x, y)
result := multiply(x, y)
fmt.Printf("multiplication: %d\n", result)
fmt.Printf("After: x = %d, y = %d\n", x, y)
}
Keputusan:
Before: x = 5, y = 10
multiplication: 100
After: x = 5, y = 10
Panggil dengan rujukan
Dalam panggilan melalui rujukan, penunjuk digunakan supaya perubahan di dalam fungsi dicerminkan dalam pembolehubah pemanggil.
Contohnya:
package main
import "fmt"
func multiply(a, b *int) int {
*a = *a * 2 // chỉnh sửa giá trị của a ở địa chỉ bộ nhớ của nó
return *a * *b
}
func main() {
x := 5
y := 10
fmt.Printf("Before: x = %d, y = %d\n", x, y)
result := multiply(&x, &y)
fmt.Printf("multiplication: %d\n", result)
fmt.Printf("After: x = %d, y = %d\n", x, y)
}
Hasilnya
Before: x = 5, y = 10
multiplication: 100
After: x = 10, y = 10