Go'da fonksiyonlar, hafızayı korumak, okunabilirliği artırmak ve zamandan tasarruf etmek için program boyunca yeniden kullanılabilen, belirli görevleri gerçekleştiren kod bloklarıdır. Golang fonksiyonları çağırana bir değer döndürebilir veya döndürmeyebilir.

Golang'daki fonksiyonlar hakkında bilinmesi gerekenler
Örneğin:
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)
}
Sonuç:
multiplication: 50
Golang'da fonksiyon sözdizimi
func function_name(Parameter-list)(Return_type) {
// function body...
}
Fonksiyon bildirimi
Go'da bir fonksiyon func anahtar sözcüğü ile tanımlanır, ardından bir isim, parametreler ve isteğe bağlı dönüş türü gelir.
Sözdizimi
func function_name(Parameter-list)(Return_type) {
// function body...
}
Çarpma fonksiyonu örneği
func multiply(a, b int) int {
return a * b
}
func: Bir fonksiyonu tanımlamak için kullanılan anahtar kelime.
function_name: Fonksiyonun adı, örneğin çarpmak.
Parametre listesi: a, b int—parametreler ve tipleri.
Return_type: int dönüş tipini belirtir.
Çağrı fonksiyonu
Bir fonksiyonu kullanmak için, fonksiyonu ismiyle ve gerekli argümanlarla çağırmanız yeterlidir. Burada, multiply(5, 10) fonksiyonu 5 ve 10'u argüman olarak kullanarak çağırır.
Örneğin
result := multiply(5, 10)
fmt.Printf("Result of multiplication: %d", result)
Fonksiyon argümanları
Go, fonksiyonlara parametre geçirmenin iki yolunu destekler: Değere göre çağırma ve Referansa göre çağırma. Go varsayılan olarak değere göre çağırmayı kullanır, yani değerler kopyalanır ve fonksiyon içindeki değişiklikler çağıranın değişkenlerini etkilemez.
Değere göre çağrı
Değere göre çağırmada, argümanların değerleri fonksiyon parametrelerine kopyalanır, dolayısıyla fonksiyondaki değişiklikler orijinal değişkenleri etkilemez.
Örneğin:
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)
}
Sonuç:
Before: x = 5, y = 10
multiplication: 100
After: x = 5, y = 10
Referansla çağrı
Referansla çağırmada, fonksiyon içindeki değişikliklerin çağıranın değişkenlerine yansıması için işaretçiler kullanılır.
Örneğin:
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)
}
Sonuç
Before: x = 5, y = 10
multiplication: 100
After: x = 10, y = 10