数据类型指定有效的Go变量可以保存的数据类型。在Go语言中,类型分为以下四类:
基本类型:数字,字符串和布尔值属于此类别。
聚合类型:数组和结构属于此类别。
引用类型:指针,切片,map集合,函数和Channel属于此类别。
接口类型
在这里,我们将讨论Go语言的基本数据类型。在基本数据类型被进一步划分为三个子类别分别是:
Numbers
Booleans
Strings
在Go语言中,数字分为三个子类别:
整数:在Go语言中,有符号和无符号整数都可以使用四种不同的大小,如下表所示。有符号的int由int表示,而无符号的整数由uint表示。
数据类型 | 描述 |
---|---|
int8 | 8位有符号整数 |
int16 | 16位有符号整数 |
int32 | 32位有符号整数 |
int64 | 64位有符号整数 |
uint8 | 8位无符号整数 |
uint16 | 16位无符号整数 |
uint32 | 32位无符号整数 |
uint64 | 64位无符号整数 |
int | in和uint都包含相同的大小,无论是32位还是64位。 |
uint | in和uint都包含相同的大小,无论是32位还是64位。 |
rune | 它是int32的同义词,也表示Unicode代码点。 |
byte | 它是int8的同义词。 |
uintptr | 它是无符号整数类型。它的宽度未定义,但是可以容纳指针值的所有位。 |
// 使用整数 package main import "fmt" func main() { // 使用8位无符号整型 var X uint8 = 225 fmt.Println(X+1, X) // 使用16位有符号整型 var Y int16 = 32767 fmt.Println(Y+2, Y-2) }
输出:
226 225 -32767 32765
浮点数:在Go语言,浮点数被分成2类如示于下表:
数据类型 | 描述 |
---|---|
float32 | 32位IEEE 754浮点数 |
float64 | 64位IEEE 754浮点数 |
// 浮点数的使用 package main import "fmt" func main() { a := 20.45 b := 34.89 //两个浮点数相减 c := b-a //显示结果 fmt.Printf("结果: %f", c) //显示c变量的类型 fmt.Printf("\nc的类型是 : %T", c) }
输出:
结果: 14.440000 c的类型是: float64
复数:将复数分为两部分,如下表所示。float32和float64也是这些复数的一部分。内建函数从它的虚部和实部创建一个复数,内建虚部和实部函数提取这些部分。
数据类型 | 描述 |
---|---|
complex64 | 包含float32作为实数和虚数分量的复数。 |
complex128 | 包含float64作为实数和虚数分量的复数。 |
//复数的使用 package main import "fmt" func main() { var a complex128 = complex(6, 2) var b complex64 = complex(9, 2) fmt.Println(a) fmt.Println(b) //显示类型 fmt.Printf("a的类型是 %T 以及"+ "b的类型是 %T", a, b) }
输出:
(6+2i) (9+2i) a的类型是 complex128 以及b的类型是 complex64
布尔数据类型仅表示true或false。布尔类型的值不会隐式或显式转换为任何其他类型。
//布尔值的使用 package main import "fmt" func main() { //变量 str1 := "nhooo" str2 := "nhooo" str3 := "nhooo" result1 := str1 == str2 result2 := str1 == str3 //打印结果 fmt.Println(result1) fmt.Println(result2) //显示result1和result2的类型 fmt.Printf("result1 的类型是 %T , "+"result2的类型是 %T", result1, result2) }
输出:
true true result1 的类型是 bool , result2的类型是 bool
字符串数据类型表示Unicode代码点的序列。换句话说,我们可以说一个字符串是不可变字节的序列,这意味着一旦创建了一个字符串,您就无法更改该字符串。字符串可以包含任意数据,包括以人类可读形式包含零值的字节。
//使用字符串 package main import "fmt" func main() { //用于存储字符串的str变量 str := "nhooo" //显示字符串的长度 fmt.Printf("字符串的长度:%d", len(str)) //显示字符串 fmt.Printf("\n字符串是: %s", str) // 显示str变量的类型 fmt.Printf("\nstr的类型是: %T", str) }
输出:
字符串的长度:5 字符串是: nhooo str的类型是: string