© best_vector/Shutterstock.com
Windows Developer
Infografik

Die wichtigsten Sprachkonstrukte in Go

Slices erweitern die Arrays in Go. Während ein Array nur eine feste Größe besitzt, kann ein Slice beliebig vergrößert werden. Außerdem ermöglichen Slices das Konzept des Subslicings, bei dem ein Slice als Teil eines anderen Slice definiert wird. Technisch gesehen ist ein Slice ein Tripel aus einem Pointer auf ein Array und jeweils einem Integer für Größe des Slice und Kapazität des Arrays.

Tim Scheuermann


Ein Slice wird mit einer Größenangabe initialisiert, dieses Slice fasst 20 Elemente: s := make([]Typ, 20) s := make([]Typ, 20, 50)Größe, Kapazität := len(s), cap(s)s = append(s, element)  s = append(s, liste...)s = append(s[:pos], append([]Typ{element}, s[pos:]...)...)s = append(s, Typ{})  copy(s[pos+1:], s[pos:]) s[pos] = elements = append(s[:pos], s[pos+1:]...)s[pos] = s[len(s)-1] s = s[:len(s)-1]Structs können einfach mit dem type Keyword erstellt werden. Go definiert zwei Sichtbarkeiten für Typen, Funktionen, Methoden und Felder: Sichtbar, wenn der erste Buchstabe des Namens großgeschrieben wurde, und Package-Privat, wenn der erste Buchstabe kleingeschrieben wurde:type MeinType struct { Attribut1 string privatesAttribut2 inttype MeinInterface interface{ Funktion1() string Funktion2(int) (int, error) }t := MeinTyp{}p := MeinTyp{ Attribut1: "Ein String", privatesAttribut2: 12345, }p := &MeinTyp{}p := new(MeinTyp)import "fmt" // ... fmt.Printf("%#v\n", t)import "encoding/json" // ... bytes, err := json.Marshal(t)type MeinType struct { Name string }  func (m *MeinType) String() string { return "Name: " + m.Name }  // ... m := &MeinType{"Erwin Lindemann"} fmt.Println(m)Ohne eine Bedingung führt for eine Endlosschleife aus (die nur mit Break verlassen werden kann):for { // Befehle }for bedingung { // Befehle }for i := 0; i

s := make([]Typ, 20) Durch die zusätzliche Angabe einer Kapazität (50) wird das zugrunde liegende Array vergrößert, was append ermöglicht, das Slice zu vergrößern, ohne die Elemen...

Windows Developer
Infografik

Die wichtigsten Sprachkonstrukte in Go

Slices erweitern die Arrays in Go. Während ein Array nur eine feste Größe besitzt, kann ein Slice beliebig vergrößert werden. Außerdem ermöglichen Slices das Konzept des Subslicings, bei dem ein Slice als Teil eines anderen Slice definiert wird. Technisch gesehen ist ein Slice ein Tripel aus einem Pointer auf ein Array und jeweils einem Integer für Größe des Slice und Kapazität des Arrays.

Tim Scheuermann


Ein Slice wird mit einer Größenangabe initialisiert, dieses Slice fasst 20 Elemente: s := make([]Typ, 20) s := make([]Typ, 20, 50)Größe, Kapazität := len(s), cap(s)s = append(s, element)  s = append(s, liste...)s = append(s[:pos], append([]Typ{element}, s[pos:]...)...)s = append(s, Typ{})  copy(s[pos+1:], s[pos:]) s[pos] = elements = append(s[:pos], s[pos+1:]...)s[pos] = s[len(s)-1] s = s[:len(s)-1]Structs können einfach mit dem type Keyword erstellt werden. Go definiert zwei Sichtbarkeiten für Typen, Funktionen, Methoden und Felder: Sichtbar, wenn der erste Buchstabe des Namens großgeschrieben wurde, und Package-Privat, wenn der erste Buchstabe kleingeschrieben wurde:type MeinType struct { Attribut1 string privatesAttribut2 inttype MeinInterface interface{ Funktion1() string Funktion2(int) (int, error) }t := MeinTyp{}p := MeinTyp{ Attribut1: "Ein String", privatesAttribut2: 12345, }p := &MeinTyp{}p := new(MeinTyp)import "fmt" // ... fmt.Printf("%#v\n", t)import "encoding/json" // ... bytes, err := json.Marshal(t)type MeinType struct { Name string }  func (m *MeinType) String() string { return "Name: " + m.Name }  // ... m := &MeinType{"Erwin Lindemann"} fmt.Println(m)Ohne eine Bedingung führt for eine Endlosschleife aus (die nur mit Break verlassen werden kann):for { // Befehle }for bedingung { // Befehle }for i := 0; i

s := make([]Typ, 20) Durch die zusätzliche Angabe einer Kapazität (50) wird das zugrunde liegende Array vergrößert, was append ermöglicht, das Slice zu vergrößern, ohne die Elemen...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang