Packages & Imports
Teil des Abschnitts Objektorientierte Programmierung der GO-Journey von Coddy — Lektion 3 von 107.
Jede Go-Datei beginnt mit einer package-Deklaration. Das Schlüsselwort import bindet Pakete aus der Standardbibliothek von Go ein, sodass Sie deren Funktionen verwenden können.
Ein einzelnes Paket importieren
import "fmt"Importieren Sie mehrere Pakete mit einem Import-Block
import (
"fmt"
"math"
"strings"
)Verwenden Sie Funktionen aus importierten Paketen mit dem Paketnamen als Präfix
package main
import (
"fmt"
"strings"
"math"
)
func main() {
upper := strings.ToUpper("hello")
fmt.Println(upper) // Ausgabe: HELLO
root := math.Sqrt(16)
fmt.Println(root) // Ausgabe: 4
}Gängige Pakete der Standardbibliothek
"fmt" // Formatierte E/A (Print, Scan, Sprintf)
"strings" // String-Manipulation (ToUpper, Contains, Replace)
"math" // Mathematische Funktionen (Sqrt, Pow, Pi)
"strconv" // String-Konvertierungen (Itoa, Atoi)Sie greifen auf Funktionen aus einem Paket mit packagename.FunctionName zu. Go erlaubt es Ihnen nur, Pakete zu importieren, die Sie tatsächlich verwenden – nicht verwendete Imports verursachen einen Kompilierfehler.
Aufgabe
MittelKorrigiere die Import-Anweisung in utils.go, damit die Funktionen korrekt funktionieren. Du musst die Pakete strings und math importieren:
FormatTextverwendetstrings.ToUpperContainsWordverwendetstrings.ContainsSquareRootverwendetmath.Sqrt
Spickzettel
Jede Go-Datei beginnt mit einer package-Deklaration. Verwenden Sie das Schlüsselwort import, um Pakete aus der Standardbibliothek von Go einzubinden.
Ein einzelnes Paket importieren:
import "fmt"Mehrere Pakete über einen Import-Block importieren:
import (
"fmt"
"math"
"strings"
)Greifen Sie auf Funktionen aus importierten Paketen mit packagename.FunctionName zu:
package main
import (
"fmt"
"strings"
"math"
)
func main() {
upper := strings.ToUpper("hello")
fmt.Println(upper) // Output: HELLO
root := math.Sqrt(16)
fmt.Println(root) // Output: 4
}Gängige Pakete der Standardbibliothek:
"fmt" // Formatierte E/A (Print, Scan, Sprintf)
"strings" // String-Manipulation (ToUpper, Contains, Replace)
"math" // Mathematische Funktionen (Sqrt, Pow, Pi)
"strconv" // String-Konvertierungen (Itoa, Atoi)Hinweis: Go erlaubt nur den Import von Paketen, die Sie tatsächlich verwenden — nicht verwendete Imports führen zu einem Kompilierfehler.
Probier es selbst
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))
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Objektorientierte Programmierung
1Grundlagen der Go OOP
Externe DateienGo Workspace & ModulePackages & ImportsExportierte vs. nicht-exportierte NamenEinführung in OOP in GoStructs als KlassenMethoden für Structs definierenPointer- vs. Value-ReceiverStruct-InitialisierungKonstruktor-FunktionenZusammenfassung – Einfacher Taschenrechner4Interfaces
Einführung in InterfacesImplizite ImplementierungInterface als VertragLeeres Interface (any)Type AssertionType SwitchInterface-KompositionStringer & Error InterfacesRückblick - Formen-Rechner7Kapselung
Exportierte vs. nicht exportierte FelderKapselung auf Paket-EbeneGetter- & Setter-MethodenInformation Hiding in GoZusammenfassung - Studierendendatensätze10Generics (Go 1.18+)
Einführung in GenericsTypparameterType ConstraintsGenerische StructsWorkaround für generische MethodenZusammenfassung – Generische Collection2Vertiefung: Typen & Structs
Basis- & zusammengesetzte TypenBenutzerdefinierte TypdefinitionenStruct TagsAnonyme StructsVerschachtelte StructsZero Values & StandardwerteZusammenfassung - Kontaktbuch5Komposition statt Vererbung
Warum Go keine Vererbung hatGrundlagen des Struct EmbeddingMethod PromotionEinbetten mehrerer StructsEmbedding vs. AggregationShadowing eingebetteter MethodenZusammenfassung – Mitarbeiter-Hierarchie8Fehlerbehandlung & OOP
Das error-InterfaceEigene FehlertypenError Wrapping (fmt.Errorf)Sentinel-Fehlererrors.Is() und errors.As()Panic, Defer und RecoverZusammenfassung – Datei-Parser3Zeiger & Speicher
Zeiger-Grundlagen in GoZeiger auf StructsWertübergabe vs. ReferenzübergabeDie new() FunktionGarbage Collection in GoWiederholung – Linked List Builder6Polymorphismus in Go
Polymorphismus über InterfacesDuck Typing in GoInterface-ErfüllungsregelnPolymorphe CollectionsDependency InjectionZusammenfassung – Payment Processor9Nebenläufigkeit & OOP
Goroutines GrundlagenChannels & KommunikationGepufferte vs. ungepufferte ChannelsSelect-Anweisungsync.Mutex & sync.RWMutexsync.WaitGroupThread-sicheres Struct-DesignZusammenfassung - Worker Pool