go 的基础数据类型
Go语言具有丰富的基础数据类型,这些数据类型用于存储和操作数据。以下是Go的主要基础数据类型:
1. **整数类型(Integer Types)**:
- `int`:根据系统架构,可以是32位或64位。
- `int8`、`int16`、`int32`、`int64`:有符号整数,分别占用8、16、32、64位。
- `uint8`、`uint16`、`uint32`、`uint64`:无符号整数,分别占用8、16、32、64位。
2. **浮点数类型(Floating-Point Types)**:
- `float32`:32位浮点数。
- `float64`:64位浮点数。
3. **复数类型(Complex Types)**:
- `complex64`:由两个float32组成的复数。
- `complex128`:由两个float64组成的复数。
4. **布尔类型(Boolean Type)**:
- `bool`:表示true或false。
5. **字符串类型(String Type)**:
- `string`:表示文本字符串。
6. **字符类型(Character Type)**:
- `byte`:uint8的别名,常用于处理ASCII字符。
- `rune`:int32的别名,通常用于处理Unicode字符。
7. **派生类型**:
- `array`:数组,长度固定。
- `slice`:切片,动态数组。
- `map`:映射,存储键值对。
- `struct`:结构体,用于自定义类型。
- `channel`:通道,用于在goroutines之间通信。
8. **指针类型(Pointer Type)**:
- `pointer`:存储变量内存地址的类型。
这些基础数据类型可以用于声明变量、函数参数和返回值等。
Go是一种静态类型语言,因此变量一旦声明,其类型就不能改变。
示例:
package main
import "fmt"
func main() {
var a int = 10
var b float64 = 3.14
var c bool = true
var d string = "Hello, Go!"
var arr [3]int = [3]int{1, 2, 3}
var slice []int = []int{4, 5, 6}
var m map[string]int = map[string]int{"one": 1, "two": 2}
type Person struct {
Name string
Age int
}
var p Person = Person{"Alice", 25}
var ptr *int = &a
fmt.Println(a, b, c, d)
fmt.Println(arr, slice, m, p)
fmt.Println("Pointer:", *ptr)
}