学无止境,今天学习Go 语言数据类型
Go(或Golang)是一种静态类型语言,这意味着变量的数据类型必须显式声明,并且在运行时不能更改。以下是Go中的一些基本数据类型:
这里仅介绍最常用的类型
-
数值类型:
int
: 有符号整数类型,其大小取决于平台(32位或64位)。int8
、int16
、int32
、int64
: 具有特定位数的有符号整数。uint
: 无符号整数类型,取决于平台。uint8
、uint16
、uint32
、uint64
: 具有特定位数的无符号整数。float32
、float64
: 用于表示小数的浮点类型。
-
字符串:
string
: 表示字符序列。Go中的字符串是不可变的。
-
布尔:
bool
: 表示布尔值,可以是true
或false
。
-
派生类型:
array
: 表示具有相同类型元素的固定大小序列。slice
: 是数组的更灵活的版本,具有动态大小。map
: 表示无序的键值对集合。struct
: 允许通过将不同类型组合成一个实体来创建自己的数据类型。pointer
: 存储另一个变量的内存地址。
-
特殊类型:
byte
:uint8
的别名。rune
:int32
的别名。用于表示 Unicode 代码点。
以下是演示其中一些类型使用的示例:
package main
import "fmt"
func main() {
// 数值类型
var integer int = 42
var floatingPoint float64 = 3.14
// 字符串类型
var message string = "Hello, Go!"
// 布尔类型
var isTrue bool = true
// 数组
var numbers [3]int = [3]int{1, 2, 3}
// 切片
var dynamicNumbers []int = []int{4, 5, 6}
// 映射
var person map[string]string = map[string]string{"name": "John", "age": "30"}
// 结构体
type Point struct {
x, y int
}
var point Point = Point{1, 2}
// 指针
var pointerToInteger *int = &integer
fmt.Println(integer, floatingPoint, message, isTrue, numbers, dynamicNumbers, person, point, *pointerToInteger)
}
此示例涵盖了Go中一些基本数据类型,但语言中还有更高级的类型和概念。随着您对Go的了解加深,您将遇到接口、通道等功能,这些功能有助于语言的简洁性和效率。