Ana içeriğe geç
Modül 3 · Ders 1 ders 5Kurstaki 11/50~10 min
Modül dersleri (1/5)

İmza ve parametreler

Go'da işlevler func ile bildirilir. İmza sözdizimi farklı C/Java'dan: tür parametre adından sonra gelir, bir karakterle ayrılmış olarak uzay. Bu, yüksek sesle daha iyi okunan bir seçimdir - bunun yerine "int tipinde n" "int n".

Temel sözdizimi

Go
func sum(a int, b int) int {
    return a + b
}

func greet(name string) {
    fmt.Println("ciao", name)
}

Dönüş değeri olmayan bir işlev, dönüş türünü atlar.

Aynı türden ardışık parametreler

Ardışık birden fazla parametre aynı türü paylaşıyorsa, şunu bildirebilirsiniz: sonuncusunda sadece bir kez. Deyimseldir ve her yerde göreceksiniz:

Go
func sum(a, b int) int { return a + b }
func max3(a, b, c float64) float64 { /* ... */ }
func parse(s, sep string, limit int) []string { /* ... */ }

Dışa aktarılan ve dışa aktarılmayan işlevler

Go'da görünürlük ada göre belirlenir: başlayan tanımlayıcılar büyük harfle yazılanlar dışa aktarılır (diğer paketlerden görülebilir), diğerleri pakete özeldir.

Go
func Sum(a, b int) int { ... }    // esportata
func helper() { ... }              // privata al package

Değer olarak işlevler

İşlevler birinci sınıf değerlerdir: onları atayabilir, iletebilir ve onları iade et. Kapanışlarla ilgili derste daha derinlere ineceğiz.

Go
op := sum            // op ha tipo func(int, int) int
fmt.Println(op(2, 3)) // 5

main ve init: iki özel ad

  • func main(), main paketinin giriş noktasıdır. Tartışma yok, dönüş değeri yok.
  • func init() paket başlangıcında otomatik olarak çağrılır (hatta birden fazla birden fazla dosya bir tane tanımlıyorsa kez). Kurulum için kullanışlıdır; dikkatli kullanın.

Deneyin

Egzersiz#go.m3.l1.e1
Denemeler: 0Yükleniyor…

a+b değerini döndüren sum(a, b int) int işlevini tanımlayın, ardından onu main'de (3, 4) ile çağırın.

Düzenleyici yükleniyor…
İpucu göster

Paylaşılan tür: `(a, b int)`. Dönüş türü parantezlerden sonra gelir.

3 denemeden sonra çözüm mevcut

Egzersiz#go.m3.l1.e2
Denemeler: 0Yükleniyor…

'ciao <isim>' yazan selamlamayı(isim dizisi) (dönüş değeri yok) tanımlayın.

Düzenleyici yükleniyor…
İpucu göster

İşlev hiçbir şey döndürmezse dönüş türü yoktur.

3 denemeden sonra çözüm mevcut

Quiz#go.m3.l1.e3
Hazır

Parametre türü Go'da nereye gider?

Go
func f(? ?) {}
Cevap seçenekleri

Özet

  • func name(param type, ...) returnType { ... }.
  • Adın ardından yazın; aynı türden ardışık parametreler → bunu yalnızca bir kez bildirin.
  • Büyük harf = dışa aktarıldı; küçük harf = pakete özel.
  • Fonksiyonlar birinci sınıftır (atanabilir, geçirilebilir).
  • main ve init özel anlamlara sahip ayrılmış adlardır.