Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Golang-Typen gibt es?

Welche Golang-Typen gibt es?

王林
王林Original
2023-05-10 10:56:071099Durchsuche

Go ist eine statisch typisierte Programmiersprache, die verschiedene Typen unterstützt, darunter häufig verwendete Grundtypen, Strukturen, Arrays und Slices, Zuordnungen, Schnittstellen und Funktionen. Im Folgenden sind einige häufig verwendete Go-Sprachtypen aufgeführt:

  1. Grundtypen

Die Go-Sprache unterstützt standardmäßige Grundtypen wie Boolean, Integer und Float , Zeichenfolgen- und Zeichentypen.

  • Boolescher Typ: Bool-Typ, nur boolesche Werte wahr und falsch.
  • Ganzzahltypen: int, int8, int16, int32, int64, uint, uint8, uint16, uint32 und uint64, repräsentieren vorzeichenbehaftete bzw. vorzeichenlose Ganzzahlen mit Größen von 8, 16, 32 und 64 Bit .
  • Gleitkommatyp: float32 und float64, repräsentieren 32-Bit- bzw. 64-Bit-Gleitkommazahlen.
  • Zeichentyp: Runentyp, eine Kodierung von Unicode-Zeichen.
  1. Struktur

Die Struktur in der Go-Sprache ist ein benutzerdefinierter zusammengesetzter Typ, der mehrere verschiedene Feldtypen enthalten kann. Strukturen können zur Darstellung einiger komplexer Datentypen verwendet werden. Felder in einer Struktur können von beliebigem Typ sein, auch von anderen Strukturtypen.

Zum Beispiel:

type Person struct {
    Name   string
    Age    int
    Height float32
}
  1. Arrays und Slices

Arrays sind auch ein Grundtyp in der Go-Sprache. Arrays haben eine feste Größe und die Länge des Arrays muss beim Definieren angegeben werden. Ein Slice ist eine Referenz auf ein Array, dem dynamisch Speicherplatz zugewiesen wird und der jederzeit vergrößert oder verkleinert werden kann. Sie können die integrierte Funktion len() verwenden, um die Länge eines Slice zu ermitteln.

Zum Beispiel:

var array [3]int // 定义一个长度为3的数组
slice := []int{1, 2, 3, 4, 5} // 定义一个切片
  1. Mapping

Mapping ist eine Datenstruktur von Schlüssel-Wert-Paaren, ähnlich wie other Ein Wörterbuch oder eine Hash-Tabelle in einer Sprache. In der Go-Sprache wird die Zuordnung mithilfe des integrierten Kartentyps dargestellt. Sie können die Funktion make() verwenden, um eine Karte zu erstellen, und dann den Operator [] verwenden, um auf Elemente in der Karte zuzugreifen.

Zum Beispiel:

scores := make(map[string]int) // 创建一个名为scores的映射
scores["Alice"] = 85 // 添加一个键值对
  1. Interface

Eine Schnittstelle ist ein abstrakter Datentyp, der eine Menge von definieren kann Methoden muss kein spezifischer Code implementiert werden. In einem Typ, der eine Schnittstelle implementiert, müssen alle in der Schnittstelle definierten Methoden implementiert werden. Schnittstellen können Code flexibler, erweiterbarer und wartbarer machen.

Zum Beispiel:

type Shape interface {
    Area() float64
    Perimeter() float64
}

type Rectangle struct {
    Width  float64
    Height float64
}

func (r Rectangle) Area() float64 {
    return r.Width * r.Height
}

func (r Rectangle) Perimeter() float64 {
    return 2 * (r.Width + r.Height)
}
  1. Funktionstyp

Funktionen sind erstklassige Bürger in der Go-Sprache, das können sie sein wie Andere Typen werden auf die gleiche Weise übergeben, zugewiesen und zurückgegeben. In der Go-Sprache ist eine Funktion auch ein Typ, und Funktionstypen können als Parameter oder Rückgabewerte definiert werden.

Zum Beispiel:

type Operation func(int, int) int

func Add(a, b int) int {
    return a + b
}

func Sub(a, b int) int {
    return a - b
}

func calc(op Operation, a, b int) int {
    return op(a, b)
}

sum := calc(Add, 10, 20) // 调用calc函数,传入Add函数作为参数
diff := calc(Sub, 30, 15) // 调用calc函数,传入Sub函数作为参数

Die oben genannten sind einige häufig verwendete Go-Sprachtypen. Die Go-Sprache unterstützt auch andere Typen wie Kanäle, Zeiger usw. Die Beherrschung dieser Typen ist sehr wichtig, um hochwertigen, lesbaren Go-Code zu schreiben.

Das obige ist der detaillierte Inhalt vonWelche Golang-Typen gibt es?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn