📅  最后修改于: 2023-12-03 14:41:37.145000             🧑  作者: Mango
Go语言是一种强类型、静态类型的编程语言。在Go中,每个变量或表达式都有一个固定的数据类型。Go中的数据类型可以分为以下几类:
基本类型指的是Go语言中预定义的数据类型。这些类型可以直接使用不需要进行定义。Go语言中的基本类型包括:
bool类型代表布尔类型,值为true或false。在Go语言中占用1个字节大小。
数字类型包括整数和浮点数两种类型。
Go语言提供了多种整数类型,包括有符号和无符号整数类型,如int、int8、int16、int32、int64、uint、uint8、uint16、uint32、uint64等。
var i int = 10
var ui uint = 10
var i8 int8 = 127
var ui8 uint8 = 255
var i16 int16 = 32767
var ui16 uint16 = 65535
var i32 int32 = 2147483647
var ui32 uint32 = 4294967295
var i64 int64 = 9223372036854775807
var ui64 uint64 = 18446744073709551615
浮点数类型包括float32和float64两种类型。Go语言中的浮点数采用的IEEE 754标准。它们分别占4个字节和8个字节大小。
var f1 float32 = 3.1415926
var f2 float64 = 3.14159265358979323846
字符串类型表示Unicode字符序列,用双引号""或反引号``包围。
var str string = "I am a string"
var rawstr string = `I am a raw string \n`
字符类型用来表示单个Unicode字符,有两种类型:rune和byte。rune类型可以用来表示Unicode编码的字符,每个rune占用4个字节大小;byte类型则是uint8类型的别名。
var ch1 rune = '中'
var ch2 rune = '国'
var ch byte = 'A'
引用类型指的是引用了以其它类型为基础类型,使用make函数创建的类型。Go语言中的引用类型包含切片、映射、通道等。
切片类型是由数组类型衍生出来类型,表示数组的一部分。切片类型可以动态增长和缩小。切片可以用make函数来创建。
var s1 []int = make([]int, 5) // len=5, cap=5
var s2 []int = make([]int, 5, 10) // len=5, cap=10
映射类型是由哈希表实现的键值对形式的容器型。映射类型可以用make函数来创建。
var m map[string]int = make(map[string]int)
m["a"] = 1
m["b"] = 2
通道类型是用来与其他Go协程进行通讯的一种类型。通道包含了一个类型和一个方向。
var c chan int = make(chan int) // 只能用于接收int值的通道
c <- 1 // 向通道发送数据
val := <-c // 从通道接受数据
接口类型定义了一组方法,用来描述对象的行为和功能。在Go语言中,接口类型是一种引用类型。接口类型可以使用任何类型实现接口。
type MyInterface interface {
Func1() int
Func2() string
}
type MyStruct struct {}
func (m MyStruct) Func1() int {
return 1
}
func (m MyStruct) Func2() string {
return "Hello, World!"
}
var obj MyInterface = MyStruct{}