Integer
Integer-Daten sind in zwei Kategorien unterteilt, 有符号
和无符号
zwei Typen
Signiert: int, int8, int16, int32, int64
Unsigned: uint, uint8, uint16, uint32, uint6 4, Byte
Der Unterschied zwischen Ganzzahltypen mit unterschiedlichen Ziffern besteht in der Größe des Bereichs der Ganzzahlzahlen, die gespeichert werden können.
Vorzeichenbehaftete Typen können jede Ganzzahl speichern, während vorzeichenlose Typen nur natürliche Zahlen speichern können.
Die Größen von int und uint hängen zusammen Das System, 32 Das Bitsystem repräsentiert int32 und uint32, und wenn es sich um ein 64-Bit-System handelt, stellt es int64 und uint64 dar
Byte ähnelt uint8 und wird im Allgemeinen zum Speichern eines einzelnen Zeichens verwendet
Um sicherzustellen, dass die Das Programm läuft ordnungsgemäß. Versuchen Sie, Datentypen zu verwenden, die weniger Platz beanspruchen Typ
Der Gleitkommatyp ist auch ein Dezimaltyp, der Dezimalzahlen speichern kann. Beispiel: 6,6, -12,341. Eine kurze Erklärung der Speicherform von Gleitkommazahlen = Vorzeichenbit + Exponentenbit + Mantissenbit Verlust der Genauigkeit. -123.0000901package main
import "fmt"
func main() {
var num1 float32 = -123.0000901
var num2 float64 = -123.0000901
fmt.Println("num1 = ", num1, "num2 = ", num2);
}
Nach dem Login kopieren
Erklärung: Die Genauigkeit von float64 ist genauer als die von float32
Erklärung: Wenn wir eine hochpräzise Zahl speichern möchten, sollten wir float64 wählen
3. Der Gleitkommaspeicher ist in drei Teile unterteilt Teile: Vorzeichenbit + Exponentenbit + Mantissenbit, während des Speichervorgangs geht die Genauigkeit verloren
4 Der Gleitkommatyp von Golang ist standardmäßig der Typ float64
5. Unter normalen Umständen sollte float64 verwendet werden Als float32 6 kann 0,123 als .123 abgekürzt werden und unterstützt auch die wissenschaftliche Schreibweise: 5.1234e2 entspricht 512,34ZeichenEs gibt keinen Sonderzeichentyp in Golang
, wenn Sie ein einzelnes Zeichen speichern möchten (Buchstabe), im Allgemeinen wird zum Speichern ein Byte verwendet. Eine Zeichenfolge ist eine Folge von Zeichen, die durch eine feste Zeichenlänge verbunden sind. Go-Strings sind durch einzelne Bytes verbunden, was bedeutet, dass herkömmliche Strings aus Zeichen bestehen, aber Go-Strings sind anders, sie bestehen aus Bytes
. Zeichen können nur in einfache Anführungszeichen gesetzt werden, nicht in doppelte Anführungszeichen. Wenn wir den Typwert direkt ausgeben, geben wir den ASCII-Codewert des entsprechenden Zeichens aus.
Wenn wir das entsprechende Zeichen ausgeben möchten , Formatierte Ausgabe ist erforderlichGo-Sprachzeichen verwenden UTF-8-Codierung, englische Buchstaben belegen ein Zeichen und chinesische Zeichen belegen drei Zeichen
In Go ist die Essenz eines Zeichens eine Ganzzahl, die der entspricht Zeichen UTF-8-codierter Codewert. Sie können einer Variablen direkt eine Zahl zuweisen. Beim Formatieren der Ausgabe gibt %c dann das der Zahl entsprechende Unicode-Zeichen aus Unicode-Codepackage main
import "fmt"
func main() {
//字符只能被单引号包裹,不能用双引号,双引号包裹的是字符串
var c1 byte = 'a'
var c2 byte = '0'
//当我们直接输出type值时,就是输出了对应字符的ASCII码值
//'a' ==> 97
fmt.Println(c1, "--", c2)
//如果我们希望输出对应字符,需要使用格式化输出
fmt.Printf("c2 = %c c2 = %c", c1, c2)
}
Nach dem Login kopieren
Wenn die von uns gespeicherten Zeichen jedoch größer als 255 sind, z. B. beim Speichern chinesischer Zeichen, kann der Bytetyp derzeit nicht gespeichert werden. Sie können zum Speichern den Typ uint oder int verwenden Diskussion über das Wesen von Zeichentypen- Um den Zeichentyp im Computer zu speichern, müssen Sie den Codewert (Ganzzahl) finden, der dem Zeichen entspricht
Speicherung: Zeichen--> Binär--> Lesen: Binär--> Zeichen --> Die entsprechende Beziehung zwischen Zeichen und Codewerten wird durch die Zeichenkodierungstabelle bestimmt angegeben ist) Die Kodierung der Go-Sprache ist in UTF -8 vereinheitlicht. Sehr praktisch, sehr einheitlich, keine Probleme mehr mit verstümmelter Codierung
Boolescher Typ
Der boolesche Typ wird auch als Bool-Typ bezeichnet. Bool-Typ-Daten erlauben nur den Wert wahr oder falsch. Der Bool-Typ belegt 1 Byte. Der Bool-Typ ist Geeignet für logische Operationen und wird im Allgemeinen zur Prozesssteuerung verwendet. String
Ein String ist eine Zeichenfolge, die durch eine Reihe von Zeichen fester Länge verbunden ist. Die Zeichenfolgen von Go werden aus einzelnen Bytes verkettet. Die Bytes der Go-Sprachzeichenfolgen verwenden die UTF-8-Codierung, um Unicode-Text zu identifizieren.
1 Sobald einer Zeichenfolge ein Wert zugewiesen wurde, kann sie nicht mehr geändert werden:
Zeichenfolgen sind in Go unveränderlich. 2. Zwei Identifikationsformen von Zeichenfolgen
doppelte Anführungszeichen, die Escape-Zeichen
var str = "abc\nabc" //输出时会换行
Nach dem Login kopieren
Backticks erkennen und sie in der nativen Form der Zeichenfolge ausgeben, einschließlich Zeilenumbrüchen und Sonderzeichen, was Angriffe verhindern kann , Quellcode und andere Effekte ausgeben
3. String-Spleißmethode „+“var str string = `abc\nabc` //输出时原样输出,不会转义
Nach dem Login kopieren
4 Wenn eine String-Zeile zu lang ist und mehrere String-Zeilen verwendet werden müssen, können Sie die folgende Verarbeitung verwenden
var str string = "hello " + "world"
str += "!"
Nach dem Login kopieren
Zeiger
Grundlegende Datentypen, Variablen speichern Werte, auch Werttypen genannt
Um die Adresse einer Variablen zu erhalten, verwenden Sie &, z. B. var num int, um die Adresse von num zu erhalten: &num 指针类型,指针变量存的是一个地址,这个地址指向的空间存的才是值,比如:var ptr *int = &num
获取指针类型所指向的值,使用:*,比如,var ptr *int,使用*ptr获取ptr指向的值
指针细节说明:
值类型,都有对应的指针类型,形式为*数据类型,比如int对应的指针就是*int,float64对应的指针类型就是*float64,依此类推。
值类型包括:基本数据类型、数组和结构体struct
值类型与引用类型
值类型和引用类型使用特点:
值类型:变量直接存储值,内存通常在栈中分配
引用类型:变量存储的是一个地址,这个地址对应的空间才真正存储数据(值),内存通常在堆上分配,当没有任何变量应用这个地址时,该地址对应的数据空间就成为一个垃圾,由GC来回收。
Golang中值类型和引用类型的区分
基本数据类型默认值
在Golang中,数据类型都有一个默认值,当程序员没有赋值时,就会保留默认值,在Golang中,默认值也叫做零值。
基本数据类型默认值如下:
数据类型 | 默认值 |
---|
整型 | 0 |
浮点型 | 0 |
字符串 | "" |
布尔类型 | false |
package main
import "fmt"
func main() {
var a int
var b float32
var isTrue bool
var str string
//这里的%v,表示按照变量的值输出
fmt.Printf("a = %v, b = %v, isTrue = %v, str = %v", a, b, isTrue, str)
fmt.Println("")
}
Nach dem Login kopieren
推荐学习:Golang教程