0Pricing
Go Academy · Ders

Paketler: Go Kodunu Düzenleme

Paket bildirimleri, içe aktarmalar ve dışa aktarılan adlar

Paketler: Go Kodunu Düzenleme, CoddyKit'te ücretsiz bir Go Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Go Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Go Academy kursu toplamda 4 dersten oluşur.

Paket Nedir?

Her Go kaynak dosyası bir pakete aittir. Paket adı her dosyanın en üstünde yer alır. Paketler ilişkili kodları gruplar ve görünürlüğü denetler:

// file: math/calc.go
package math

// Exported — accessible from other packages (capital letter)
func Add(a, b int) int { return a + b }

// Unexported — package-private (lowercase)
func helper() int { return 42 }

Paket Bildirimi ve İçe Aktarma Yolu

Paket adı (kısa), içe aktarma yolundan (tam modül yolu/dizin) farklıdır:

// Import path: github.com/myapp/util/stringutil
// Package name: stringutil (last segment by convention)
package stringutil

func Reverse(s string) string {
    r := []rune(s)
    for i, j := 0, len(r)-1; i < j; i, j = i+1, j-1 {
        r[i], r[j] = r[j], r[i]
    }
    return string(r)
}

Paketleri İçe Aktarma

Diğer paketleri içeri almak için import kullanın. Go, tüm içe aktarmaların kullanılmasını zorunlu kılar:

package main

import (
    "fmt"                         // standard library
    "strings"                     // standard library
    "github.com/myapp/util/math"  // third-party or local
)

func main() {
    fmt.Println(strings.ToUpper("hello"))
    fmt.Println(math.Add(1, 2))
}

Dışa Aktarılan ve Dışa Aktarılmayan Tanımlayıcılar

Büyük harfle başlayan tanımlayıcılar dışa aktarılır (genel kullanıma açıktır). Küçük harfle başlayanlar dışa aktarılmaz (yalnızca paket içinde kullanılabilir):

package server

// Exported: accessible from other packages
type Server struct {
    Addr    string   // exported field
    timeout int      // unexported field
}

// Exported method
func (s *Server) Start() error { return nil }

// Unexported helper
func (s *Server) listen() {}

main Paketi ve main İşlevi

main paketi özeldir; çalıştırılabilir bir program tanımlar. main işlevi giriş noktasıdır:

package main

import "fmt"

func main() {
    fmt.Println("Hello, Go!")
    // Program starts here and ends here
}

// All other packages are libraries — no main() needed

init() İşlevi

Her pakette, main() işlevinden önce otomatik olarak ve bildirim sırasına göre çalışan bir veya daha fazla init() işlevi bulunabilir:

package config

import "fmt"

var DB string

func init() {
    DB = "localhost:5432/mydb"
    fmt.Println("config package initialized")
}

// init runs once when the package is first imported
// Multiple init() functions per file/package are allowed

Yalnızca Yan Etkiler İçin Boş İçe Aktarma

Bir paketi yalnızca init() işlevinin yan etkileri için boş tanımlayıcıyı kullanarak içe aktarın:

package main

import (
    "database/sql"
    _ "github.com/lib/pq"  // registers PostgreSQL driver via init()
)

func main() {
    db, err := sql.Open("postgres", "host=localhost dbname=test")
    _ = db
    _ = err
}

Takma Adla İçe Aktarma

Ad çakışmalarını önlemek veya daha kısa bir kullanım sağlamak için içe aktarma sırasında paketi yeniden adlandırın:

package main

import (
    "fmt"
    gomath "math"              // alias to avoid collision
    mymath "github.com/me/math"
)

func main() {
    fmt.Println(gomath.Sqrt(16))     // 4
    fmt.Println(mymath.Add(1, 2))    // 3
}

Paket Adlandırma Kuralları

Go paketleri için adlandırma kuralları:

  • Kısa, küçük harfli ve tek sözcüklü adlar kullanın: http, json, fmt
  • Dizin adıyla eşleşmelidir: util/stringutil/ → stringutil paketi
  • Paket adlarında alt çizgi veya camelCase kullanmayın
  • util, common, helper gibi genel adlardan kaçının
  • Paket adı tanımlayıcının bir parçasıdır: httplib.HTTPClient yerine http.Client kullanmayı tercih edin

Döngüsel İçe Aktarmalar

Go, döngüsel içe aktarmalara izin vermez. B paketi A'yı içe aktarıyorsa A paketi B'yi içe aktaramaz. Ortak kodu üçüncü bir pakete çıkararak sorunu çözün:

// WRONG: A imports B, B imports A — compile error
// package a imports "myapp/b"
// package b imports "myapp/a"

// SOLUTION: extract shared types to package c
// package a imports "myapp/c"
// package b imports "myapp/c"
// No circular dependency

Kısa Kontrol

Go'da bir tanımlayıcının dışa aktarılmasını sağlayan nedir?

Özet: Paketler

Temel paket kavramları:

  • Her dosya package name ile başlar
  • Büyük harf = dışa aktarılan (genel), küçük harf = dışa aktarılmayan (yalnızca paket içinde)
  • Tam yolla içe aktarın, kısa paket adıyla kullanın
  • init(), main() işlevinden önce otomatik olarak çalışır
  • Yalnızca yan etkiler için boş içe aktarma: _ "pkg"
  • Döngüsel içe aktarmalara izin verilmez

Sıkça Sorulan Sorular

“Paketler: Go Kodunu Düzenleme” dersi ücretsiz mi?

Evet — “Paketler: Go Kodunu Düzenleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Go Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Go Academy kursu toplamda 4 dersten oluşur.

“Paketler: Go Kodunu Düzenleme” dersinde ne öğreneceğim?

Paket bildirimleri, içe aktarmalar ve dışa aktarılan adlar Go Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Go Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Go Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Paketler: Go Kodunu Düzenleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Go Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Go Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Paketler: Go Kodunu Düzenleme
  2. go mod ile Go Modülleri
  3. Harici Bağımlılık Ekleme
  4. Dahili Paketler ve Çalışma Alanları
← Go Academy Sayfasına Dön