Merge pull request #1890 from jmeinke/master

[go/de] More infos, reformulation and typo fixes for Go.
This commit is contained in:
ven 2016-01-25 11:32:07 +01:00
commit 95e384fbbc

View File

@ -4,17 +4,16 @@ filename: learngo-de.go
contributors: contributors:
- ["Joseph Adams", "https://github.com/jcla1"] - ["Joseph Adams", "https://github.com/jcla1"]
- ["Dennis Keller", "https://github.com/denniskeller"] - ["Dennis Keller", "https://github.com/denniskeller"]
- ["Jerome Meinke", "https://github.com/jmeinke"]
lang: de-de lang: de-de
--- ---
Go wurde entwickelt, um Probleme zu lösen. Sie ist zwar nicht der neueste Trend in Die Sprache Go (auch golang) wurde von Google entwickelt und wird seit 2007
der Informatik, aber sie ist einer der neuesten und schnellsten Wege, um Aufgabe in benutzt. Go ähnelt in der Syntax der Sprache C, bietet darüber hinaus aber viele
der realen Welt zu lösen. Vorteile. Einerseits verzichtet Gp auf Speicherarithmetik und
benutzt einen Garbabe Collector. Andererseits enthält Go native Sprachelemente
Sie hat vertraute Elemente von imperativen Sprachen mit statischer Typisierung für die Unterstützung von Nebenläufigkeit. Durch den Fokus auf einen schnellen
und kann schnell kompiliert und ausgeführt werden. Verbunden mit leicht zu Kompilierprozess wird außerdem die Softwareentwicklung in Großprojekten
verstehenden Parallelitäts-Konstrukten, um die heute üblichen mehrkern erleichtert.
Prozessoren optimal nutzen zu können, eignet sich Go äußerst gut für große
Programmierprojekte.
Außerdem beinhaltet Go eine gut ausgestattete Standardbibliothek und hat eine Außerdem beinhaltet Go eine gut ausgestattete Standardbibliothek und hat eine
aktive Community. aktive Community.
@ -24,7 +23,7 @@ aktive Community.
/* Mehr- /* Mehr-
zeiliger Kommentar */ zeiliger Kommentar */
// Eine jede Quelldatei beginnt mit einer Paket-Klausel. // Wie bei Java gehört jede Quelldatei einem Paket an (Modularisierung).
// "main" ist ein besonderer Paketname, da er ein ausführbares Programm // "main" ist ein besonderer Paketname, da er ein ausführbares Programm
// einleitet, im Gegensatz zu jedem anderen Namen, der eine Bibliothek // einleitet, im Gegensatz zu jedem anderen Namen, der eine Bibliothek
// deklariert. // deklariert.
@ -40,7 +39,7 @@ import (
// Es folgt die Definition einer Funktion, in diesem Fall von "main". Auch hier // Es folgt die Definition einer Funktion, in diesem Fall von "main". Auch hier
// ist der Name wieder besonders. "main" markiert den Eintrittspunkt des // ist der Name wieder besonders. "main" markiert den Eintrittspunkt des
// Programms. Vergessen Sie nicht die geschweiften Klammern! // Programms.
func main() { func main() {
// Println gibt eine Zeile zu stdout aus. // Println gibt eine Zeile zu stdout aus.
// Der Prefix "fmt" bestimmt das Paket aus welchem die Funktion stammt. // Der Prefix "fmt" bestimmt das Paket aus welchem die Funktion stammt.
@ -50,8 +49,8 @@ func main() {
beyondHello() beyondHello()
} }
// Funktionen können Parameter akzeptieren, diese werden in Klammern deklariert, // Funktionen können Parameter akzeptieren. Diese werden in Klammern deklariert,
// die aber auch bei keinen Parametern erforderlich sind. // die aber auch ohne Parameter erforderlich sind.
func beyondHello() { func beyondHello() {
var x int // Deklaration einer Variable, muss vor Gebrauch geschehen. var x int // Deklaration einer Variable, muss vor Gebrauch geschehen.
x = 3 // Zuweisung eines Werts. x = 3 // Zuweisung eines Werts.
@ -99,7 +98,7 @@ Zeilenumbrüche beinhalten.` // Selber Zeichenketten-Typ
// "slices" haben eine dynamische Größe. Arrays und Slices haben beide ihre // "slices" haben eine dynamische Größe. Arrays und Slices haben beide ihre
// Vorzüge, aber slices werden viel häufiger verwendet // Vorzüge, aber slices werden viel häufiger verwendet
s3 := []int{4, 5, 9} // Vergleichen Sie mit a3, hier: keine Ellipse s3 := []int{4, 5, 9} // Vergleichen Sie mit a3, hier: keine Ellipse
s4 := make([]int, 4) // Weist Speicher für 4 ints zu, alle mit Initialwert 0 s4 := make([]int, 4) // Weist Speicher für 4 ints zu, alle mit Wert 0
var d2 [][]float64 // Nur eine Deklaration, keine Speicherzuweisung var d2 [][]float64 // Nur eine Deklaration, keine Speicherzuweisung
bs := []byte("eine slice") // Umwandlungs-Syntax bs := []byte("eine slice") // Umwandlungs-Syntax
@ -201,7 +200,8 @@ type pair struct {
x, y int x, y int
} }
// Definiere eine Methode von "pair". Dieser Typ erfüllt jetzt das Stringer interface. // Definiere eine Methode von "pair".
// Dieser Typ erfüllt jetzt das Stringer interface.
func (p pair) String() string { // p ist der Empfänger func (p pair) String() string { // p ist der Empfänger
// Sprintf ist eine weitere öffentliche Funktion von fmt. // Sprintf ist eine weitere öffentliche Funktion von fmt.
// Der Syntax mit Punkt greift auf die Felder zu. // Der Syntax mit Punkt greift auf die Felder zu.
@ -255,8 +255,9 @@ func learnConcurrency() {
// Die selbe "make"-Funktion wie vorhin. Sie initialisiert Speicher für // Die selbe "make"-Funktion wie vorhin. Sie initialisiert Speicher für
// maps, slices und Kanäle. // maps, slices und Kanäle.
c := make(chan int) c := make(chan int)
// Starte drei parallele "Goroutines". Die Zahlen werden parallel (concurrently) // Starte drei parallele "Goroutines".
// erhöht. Alle drei senden ihr Ergebnis in den gleichen Kanal. // Die Zahlen werden parallel (concurrently) erhöht.
// Alle drei senden ihr Ergebnis in den gleichen Kanal.
go inc(0, c) // "go" ist das Statement zum Start einer neuen Goroutine go inc(0, c) // "go" ist das Statement zum Start einer neuen Goroutine
go inc(10, c) go inc(10, c)
go inc(-805, c) go inc(-805, c)
@ -306,14 +307,13 @@ func (p pair) ServeHTTP(w http.ResponseWriter, r *http.Request) {
``` ```
## Weitere Resourcen ## Weitere Resourcen
Alles zu Go finden Sie auf der [offiziellen Go Webseite](http://golang.org/). Informationen zu Go findet man auf der [offiziellen Go Webseite](http://golang.org/).
Dort können sie dem Tutorial folgen, interaktiv Quelltext ausprobieren und viel Dort gibt es unter anderem ein Tutorial und interaktive Quelltext-Beispiele, vor
Dokumentation lesen. allem aber Dokumentation zur Sprache und den Paketen.
Auch zu empfehlen ist die Spezifikation von Go, die nach heutigen Standards sehr Auch zu empfehlen ist die Spezifikation von Go, die nach heutigen Standards sehr
kurz und auch gut verständlich formuliert ist. Auf der Leseliste von Go-Neulingen kurz und gut verständlich formuliert ist. Auf der Leseliste von Go-Neulingen
ist außerdem der Quelltext der [Go standard Bibliothek](http://golang.org/src/pkg/). ist außerdem der Quelltext der [Go standard Bibliothek](http://golang.org/src/pkg/)
Gut dokumentiert, demonstriert sie leicht zu verstehendes und im idiomatischen Stil einzusehen. Dieser kann als Referenz für leicht zu verstehendes und im idiomatischen Stil
verfasstes Go. Erreichbar ist der Quelltext auch durch das Klicken der Funktionsnamen verfasstes Go dienen. Erreichbar ist der Quelltext auch durch das Klicken der Funktionsnamen
in der [offiziellen Dokumentation von Go](http://golang.org/pkg/). in der [offiziellen Dokumentation von Go](http://golang.org/pkg/).