mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-24 10:01:38 +00:00
Merge pull request #1890 from jmeinke/master
[go/de] More infos, reformulation and typo fixes for Go.
This commit is contained in:
commit
95e384fbbc
@ -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/).
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user