Paketler ve İçe Aktarmalar
Coddy'nin GO Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 3 / 107.
Her Go dosyası bir package bildirimi ile başlar. import anahtar kelimesi, Go'nun standart kütüphanesinden paketleri dahil eder, böylece onların fonksiyonlarını kullanabilirsiniz.
Tek bir paketi içe aktarın
import "fmt"Bir import bloğu kullanarak birden fazla paketi içe aktarın
import (
"fmt"
"math"
"strings"
)İçe aktarılan paketlerdeki fonksiyonları paket adı önekiyle kullanın
package main
import (
"fmt"
"strings"
"math"
)
func main() {
upper := strings.ToUpper("hello")
fmt.Println(upper) // Çıktı: HELLO
root := math.Sqrt(16)
fmt.Println(root) // Çıktı: 4
}Yaygın standart kütüphane paketleri
"fmt" // Formatlı G/Ç (Print, Scan, Sprintf)
"strings" // Dize işleme (ToUpper, Contains, Replace)
"math" // Matematik fonksiyonları (Sqrt, Pow, Pi)
"strconv" // Dize dönüşümleri (Itoa, Atoi)Bir paketteki fonksiyonlara packagename.FunctionName kullanarak erişirsiniz. Go, yalnızca gerçekten kullandığınız paketleri içe aktarmanıza izin verir — kullanılmayan içe aktarmalar bir derleme hatasına neden olur.
Görev
OrtaFonksiyonların doğru çalışması için utils.go dosyasındaki import ifadesini düzeltin. strings ve math paketlerini içe aktarmanız gerekiyor:
FormatText,strings.ToUpperkullanırContainsWord,strings.ContainskullanırSquareRoot,math.Sqrtkullanır
Kopya kağıdı
Her Go dosyası bir package bildirimi ile başlar. Go'nun standart kütüphanesinden paketleri dahil etmek için import anahtar kelimesini kullanın.
Tek bir paketi içe aktarın:
import "fmt"Bir içe aktarma bloğu kullanarak birden fazla paketi içe aktarın:
import (
"fmt"
"math"
"strings"
)İçe aktarılan paketlerdeki fonksiyonlara packagename.FunctionName kullanarak erişin:
package main
import (
"fmt"
"strings"
"math"
)
func main() {
upper := strings.ToUpper("hello")
fmt.Println(upper) // Çıktı: HELLO
root := math.Sqrt(16)
fmt.Println(root) // Çıktı: 4
}Yaygın standart kütüphane paketleri:
"fmt" // Biçimlendirilmiş G/Ç (Print, Scan, Sprintf)
"strings" // Dize işleme (ToUpper, Contains, Replace)
"math" // Matematik fonksiyonları (Sqrt, Pow, Pi)
"strconv" // Dize dönüştürmeleri (Itoa, Atoi)Not: Go yalnızca gerçekten kullandığınız paketleri içe aktarmanıza izin verir — kullanılmayan içe aktarmalar derleme hatasına neden olur.
Kendin dene
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
scanner := bufio.NewScanner(os.Stdin)
scanner.Scan()
line := scanner.Text()
parts := strings.Fields(line)
numStr := parts[len(parts)-1]
text := strings.Join(parts[:len(parts)-1], " ")
num, _ := strconv.ParseFloat(numStr, 64)
fmt.Printf("Upper: %s\n", FormatText(text))
fmt.Printf("Contains 'world': %t\n", ContainsWord(text, "world"))
fmt.Printf("Sqrt: %.2f\n", SquareRoot(num))
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Yönelimli Programlama bölümündeki tüm dersler
1Go OOP Temelleri
Harici DosyalarGo Çalışma Alanı ve ModüllerPaketler ve İçe AktarmalarDışa Aktarılan ve Aktarılmayan İsimlerGo'da OOP'ye GirişSınıf Olarak Struct'larStruct'larda Metot TanımlamaPointer ve Değer AlıcılarStruct BaşlatmaYapıcı FonksiyonlarÖzet - Basit Hesap Makinesi4Arayüzler
Arayüzlere GirişÖrtük UygulamaSözleşme Olarak ArayüzBoş Arayüz (any)Tür OnaylamaTür SeçimiArayüz BileşimiStringer ve Error ArayüzleriÖzet - Şekil Hesaplayıcı7Kapsülleme
Dışa Aktarılan ve Aktarılmayan AlanlarPaket Seviyesinde KapsüllemeGetter ve Setter MetotlarıGo'da Bilgi GizlemeÖzet - Öğrenci Kayıtları10Generics (Go 1.18+)
Generics'e GirişTür ParametreleriTür KısıtlamalarıGeneric Struct'larGeneric Metotlar İçin Geçici ÇözümÖzet - Generic Koleksiyon13Tasarım Kalıpları Bölüm 1
Tasarım Kalıplarına GirişSingleton KalıbıFactory KalıbıAbstract Factory KalıbıObserver KalıbıStrategy Kalıbı2Türler ve Struct'lar: Derinlemesine İnceleme
Temel ve Bileşik TürlerÖzel Tür TanımlamalarıStruct EtiketleriAnonim Struct'larİç İçe Geçmiş Struct'larSıfır Değerler ve VarsayılanlarÖzet - Rehber5Kalıtım Yerine Kompozisyon
Go'da Neden Kalıtım YokStruct Gömme TemelleriMetot YükseltmeBirden Fazla Struct GömmeGömme vs AgregasyonGömülü Metotları GölgelemeÖzet - Çalışan Hiyerarşisi8Hata Yönetimi ve OOP
error ArayüzüÖzel Hata TürleriHata Sarmalama (fmt.Errorf)Sentinel Hatalarerrors.Is() ve errors.As()Panic, Defer ve RecoverÖzet - Dosya Ayrıştırıcı3İşaretçiler ve Bellek
Go'da İşaretçi TemelleriStruct İşaretçileriDeğer ile Geçme ve Referans ile Geçmenew() FonksiyonuGo'da Garbage CollectionÖzet - Linked List Oluşturucu6Go'da Polimorfizm
Interface'ler ile PolimorfizmGo'da Duck TypingInterface Karşılama KurallarıPolimorfik KoleksiyonlarDependency InjectionÖzet - Payment Processor9Eşzamanlılık ve OOP
Goroutine TemelleriKanallar ve İletişimTamponlu ve Tamponsuz KanallarSelect İfadesisync.Mutex ve sync.RWMutexsync.WaitGroupThread-Safe Struct TasarımıÖzet - Worker Pool