数据类型指定有效的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