Skip to content

Commit 8a802cf

Browse files
committed
Fix failing build for a German version because of template tags
1 parent 61b5bc3 commit 8a802cf

File tree

1 file changed

+29
-29
lines changed

1 file changed

+29
-29
lines changed

de/02.2.md

+29-29
Original file line numberDiff line numberDiff line change
@@ -15,36 +15,36 @@ Definiere mehrere Variablen.
1515

1616
// Definiere drei Variablen vom Typ "type"
1717
var vname1, vname2, vname3 type
18-
18+
1919
Definiere eine Variable mit einem Startwert.
2020

2121
// Definiere eine Variable mit dem Namen “variableName” vom Typ "type" und dem Wert "value"
2222
var variableName type = value
23-
23+
2424
Definiere mehrere Variablen mit einem Startwert.
2525

2626
/*
2727
Definiere drei Variablen vom Typ "type" und gib ihnen drei Startwerte.
2828
vname1 ist gleich v1, vname2 ist gleich v2, vname3 ist gleich v3
2929
*/
3030
var vname1, vname2, vname3 type = v1, v2, v3
31-
31+
3232
Findest Du es nicht auch ein wenig mühsehlig, Variablen auf diesem Weg zu definieren? Keine Sorge, denn das Team hinter Go hat auch so gedacht. Daher kannst Du Variablen Startwerte geben, ohne explizit den Datentyp zu definieren. Der Code würde dann so aussehen:
3333

3434
/*
3535
Definiere drei Variablen vom Typ "type" und gib ihnen drei Ausgangswerte.
3636
vname1 ist gleich v1, vname2 ist gleich v2, vname3 ist gleich v3
3737
*/
3838
var vname1, vname2, vname3 = v1, v2, v3
39-
39+
4040
Schön, ich weiß das dies immer noch nicht einfach genug für Dich ist. Mal schauen, wie wir das lösen können.
4141

4242
/*
4343
Definiere drei Variablen ohne den Typ "type", ohne das Schlüsselwort "var" und gib ihnen Startwerte.
4444
vname1 ist gleich v1,vname2 ist gleich v2,vname3 ist gleich v3
4545
*/
4646
vname1, vname2, vname3 := v1, v2, v3
47-
47+
4848

4949
So sieht es schon viel besser aus. Nutze `:=`, um `var` und `type` zu ersetzen. Es handelt sich hierbei um eine Kurzschreibweise. Aber warte, es gibt einen kleinen Haken: diese Form der Definition kann nur innerhalb von Fuktionen genutzt werden. Der Compiler wird sonst eine Fehlermeldung ausgeben, wenn Du es trotzdem außerhalb der `{}` einer Funktion versuchst. Daher nutzen wir meist das Schlüsselwort `var` um globale Variablen zu definieren oder die Funktion `var()`.
5050

@@ -59,15 +59,15 @@ Wenn Du Variablen in Deinem Programm definierst, aber keine Verwendung finden, w
5959
func main() {
6060
var i int
6161
}
62-
62+
6363
## Konstanten
6464

6565
Konstanten sind Werte, die während der Kompilierung festgelegt werden und während der Laufzeit nicht veränderbar sind. In Go kannst Du Konstanten als Wert Nummern, Booleans oder Strings geben.
6666

6767
Definiere eine Konstante wie folgt.
6868

6969
const constantName = value
70-
// Du kannst auch den Datentyp hinzufügen, wenn nötig
70+
// Du kannst auch den Datentyp hinzufügen, wenn nötig
7171
const Pi float32 = 3.1415926
7272

7373
Mehr Beispiele.
@@ -76,7 +76,7 @@ Mehr Beispiele.
7676
const i = 10000
7777
const MaxThread = 10
7878
const prefix = "astaxie_"
79-
79+
8080
## Grundlegende Datentypen
8181

8282
### Boolean
@@ -91,7 +91,7 @@ In Go nutzen wir `bool`, um Booleans (Wahrheitswerte) auszudrücken, die entwede
9191
valid := false // Kurzschreibweise einer Definition
9292
available = true // Eine Variable deklarieren
9393
}
94-
94+
9595
### Numerische Datentypen
9696

9797
Der Datentyp Integer (ganze Zahlen) kann sowohl den positiven, als auch den negativen Zahlenraum umfassen, was durch ein Vorzeichen kenntlich gemacht wird. Go besitzt `int` und `uint`, welche den selben Wertebereich haben. Dessen Größe hängt aber vom Betriebssystem ab. Es werden 32-Bit unter 32-Bit Betriebssystemen verwendet und 64-Bit unter 64-Bit Betriebssystemen. Go umfasst außerdem Datentypen mit einer spezifischen Länge: `rune`, `int8`, `int16`, `int32`, `int64`, `byte`, `uint8`, `uint16`, `uint32` und `uint64`. Bedenke, dass `rune` ein Alias für `int32` ist und `byte` dem `uint8` gleicht.
@@ -114,7 +114,7 @@ War das schon alles? Nein! Go unterstützt auch komplexe Zahlen. `complex128` (b
114114
var c complex64 = 5+5i
115115
// Ausgabe: (5+5i)
116116
fmt.Printf("Der Wert ist: %v", c)
117-
117+
118118
### Strings
119119

120120
Wir sprachen vorhin darüber, das Go eine native UTF-8 Unterstützung mit sich bringt. Strings (Zeichenketten) werden durch Anführungszeichen `""` gekennzeichet, oder durch Backticks (rückwärts geneigtes Hochkomma) ``` `` ```.
@@ -140,28 +140,28 @@ Aber was ist, wenn ich wirklich nur ein Zeichen in einem String ändern möchte?
140140
c[0] = 'c'
141141
s2 := string(c) // Wandle den Wert in eine String zurück
142142
fmt.Printf("%s\n", s2)
143-
143+
144144

145145
Nutze den `+` Operator, um zwei Strings zu verknüpfen.
146146

147147
s := "Hallo"
148148
m := " Welt"
149149
a := s + m
150150
fmt.Printf("%s\n", a)
151-
151+
152152

153153
oder auch
154154

155155
s := "Hallo"
156156
s = "c" + s[1:] // Du kannst die Werte mit Hilfe des Index nicht verändern, aber sie abfragen
157157
fmt.Printf("%s\n", s)
158-
158+
159159

160160
Was ist, wenn ein String über mehrere Zeilen verlaufen soll?
161161

162162
m := `Hallo
163163
Welt`
164-
164+
165165
`\`` wird die Zeichen in einem String escapen (d.h. mit `\` dessen Ausführung verhindern).
166166

167167
### Fehlermeldungen
@@ -172,7 +172,7 @@ Go besitzt mit `error` einen eigenen Datentyp, um mit Fehlermeldungen umzugehen.
172172
if err != nil {
173173
fmt.Print(err)
174174
}
175-
175+
176176
### Grundeliegende Datenstrukturen
177177

178178
Die folgende Grafik enstammt dem Artikel [Datenstrukturen in Go](http://research.swtch.com/godata) (auf englisch) aus [Russ Coxs Blog](http://research.swtch.com/). Wie Du sehen kannst, nutzt Go Abschnitte des Arbeitsspeichers, um Daten zu speichern.
@@ -199,7 +199,7 @@ Wenn Du mehrere Konstanten und Variablen deklarieren oder Pakete importieren mö
199199
var i int
200200
var pi float32
201201
var prefix string
202-
202+
203203
Gruppierter Ansatz.
204204

205205
import(
@@ -233,8 +233,8 @@ Go besitzt das Schlüselwort `iota`, um eine Aufzählung zu starten. Der Startwe
233233
)
234234

235235
const v = iota // Sobald iota erneut auf `const` trifft, wird erneut mit `0` gestartet, also gilt v = 0.
236-
237-
const (
236+
237+
const (
238238
e, f, g = iota, iota, iota // e, f und g haben den selben Wert 0, da sie in der selben Zeile stehen.
239239
)
240240

@@ -261,7 +261,7 @@ wobei in `[n]Datentyp` das `n` die Länge des Arrays angibt. `Datentyp` ist selb
261261
fmt.Printf("Das erste Element ist %d\n", arr[0]) // Beim Auslesen des Wertes wird 42 zurückgegeben
262262
fmt.Printf("Das letzte Element ist %d\n", arr[9]) // Es gibt den Standardwert des 10. Elements zurück, was in diesem Fall 0 ist.
263263

264-
Da die Länge ein Teil des Array-Typs ist, sind `[3]int` und `[4]int` verschieden, sodass wir die Länge eines Arrays nicht ändern können. Nutzt Du Arrays als Argument in einer Funktion, dann wird eine Kopie des Arrays übergeben, statt einem Zeiger (bzw. ein Verweis) auf das Original. Möchtest Du stattdessen den Zeiger übergeben, dann musst Du einen `slice` verwenden. Darauf gehen wir aber später nochmals ein.
264+
Da die Länge ein Teil des Array-Typs ist, sind `[3]int` und `[4]int` verschieden, sodass wir die Länge eines Arrays nicht ändern können. Nutzt Du Arrays als Argument in einer Funktion, dann wird eine Kopie des Arrays übergeben, statt einem Zeiger (bzw. ein Verweis) auf das Original. Möchtest Du stattdessen den Zeiger übergeben, dann musst Du einen `slice` verwenden. Darauf gehen wir aber später nochmals ein.
265265

266266
Es ist möglich, `:=` zu nutzen, um ein Array zu deklarieren.
267267

@@ -273,10 +273,10 @@ Vielleicht möchtest Du auch Arrays als Element in einem Array nutzen. Schauen w
273273

274274
// Deklariere ein zweidimensionales Array mit zwei Elementen, welche jeweils vier Elemente besitzen.
275275
doubleArray := [2][4]int{[4]int{1, 2, 3, 4}, [4]int{5, 6, 7, 8}}
276-
276+
277+
277278
// Die Dekleration kann auch ein wenig kompakter geschrieben werden.
278-
easyArray := [2][4]int{{1, 2, 3, 4}, {5, 6, 7, 8}}
279-
279+
{% raw %} easyArray := [2][4]int{{1, 2, 3, 4}, {5, 6, 7, 8}} {% endraw %}
280280

281281
Arrays sind grundlegende Datenstrukturen in Go.
282282

@@ -308,12 +308,12 @@ Nun deklarieren wir ein `slice` und vergeben Startwerte.
308308
// 'a' verweist auf die Elemente zwischen Index 3 und 5 im Array ar.
309309
a = ar[2:5]
310310
// 'a' besitzt nun die Elemente ar[2],ar[3] und ar[4]
311-
311+
312312
// 'b' ist ein weiterer Ausschnitt (Slice) vom Array ar
313313
b = ar[3:5]
314314
// 'b' besitzt nun die Elemente ar[3] und ar[4]
315315

316-
Beachte die Unterscheide bei der Deklaration von `slice` und `array`. Wir nutzen `[…]`, um Go die Länge automatisch herausfinden zu lassen, aber nutzen `[]` lediglich zur Deklaration von Slices.
316+
Beachte die Unterscheide bei der Deklaration von `slice` und `array`. Wir nutzen `[…]`, um Go die Länge automatisch herausfinden zu lassen, aber nutzen `[]` lediglich zur Deklaration von Slices.
317317

318318
Ihre zugrundeliegenden Datentypen.
319319

@@ -325,7 +325,7 @@ Slices haben bestimmte Anwendungsgebiete.
325325

326326
- Ein `slice` beginnt mit dem Index 0, `ar[:n]` gleicht `ar[0:n]`.
327327
- Der zweite Index gibt die Länge vom Slice an, wenn er ausgelassen wird. `ar[n:]` gleicht `ar[n:len(ar)]`.
328-
- Du kannst auch `ar[:]` nutzen, um einen gesamtes Array zu kopieren, wie in den ersten beiden Punkten erklärt.
328+
- Du kannst auch `ar[:]` nutzen, um einen gesamtes Array zu kopieren, wie in den ersten beiden Punkten erklärt.
329329

330330
Mehr Beispiele zu `slice`
331331

@@ -383,7 +383,7 @@ Schauen wir uns ein wenig Code an. Die 'set'- und 'get'-Werte in `map` sind der
383383
// Ein alternativer Weg zum Deklarieren
384384
nummern := make(map[string]int)
385385
nummern["eins"] = 1 // Weise ein Wert durch einen Schlüssel zu
386-
nummern["zehn"] = 10
386+
nummern["zehn"] = 10
387387
nummern["drei"] = 3
388388

389389
fmt.Println("Die dritte Nummer lautet: ", nummern["drei"]) // Lese den Wert aus
@@ -398,7 +398,7 @@ Einige Anmerkungen zur Nutzung von maps.
398398

399399
Du kannst das Schema `Schlüssel:Wert` nutzen, um eine `map` mit Startwerten zu erstellen. `map` hat auch eingebaute Funktionen, um die Existenz eines `key` zu überprüfen.
400400

401-
Benutze `delete`, um ein Element in `map` zu löschen.
401+
Benutze `delete`, um ein Element in `map` zu löschen.
402402

403403
// Erstelle eine map
404404
bewertung := map[string]float32 {"C":5, "Go":4.5, "Python":4.5, "C++":2 }
@@ -450,9 +450,9 @@ Standardwerte besitzen einen Wert. Dies sind die gebräuchlichsten Anwendungsfä
450450
float64 0 // Die Größe beträgt 8 Byte
451451
bool false
452452
string ""
453-
453+
454454
## Links
455455

456456
- [Inhaltsverzeichnis](preface.md)
457457
- Vorheriger Abschnitt: ["Hallo Go"](02.1.md)
458-
- Nächster Abschnitt: [Kontrollstrukturen und Funktionen](02.3.md)
458+
- Nächster Abschnitt: [Kontrollstrukturen und Funktionen](02.3.md)

0 commit comments

Comments
 (0)