首页 Golang

go基础-数据类型一


数据类型

概览

基本数据类型

  • 布尔类型:bool
  • 整型:int8、byte、int16、int、uint、uintptr 等
  • 浮点类型:float32、float64
  • 复数类型:complex64、complex128
  • 字符串:string
  • 字符类型:rune
  • 错误类型:error

复合类型

  • 指针(pointer)
  • 数组(array)
  • 切片(slice)
  • 字典(map)
  • 通道(chan)
  • 结构体(struct)
  • 接口(interface)

基本数据类型

布尔类型

var v1 bool
v1 = true

v2 := true
v3 := (1 == 2) // 会被推导为bool类型

var v4 bool
v4 = 1 // 会报错,go是强类型语言

Go语言中,不同类型的值不能用==!=运算符进行比较,! 运算符也不能作用于非布尔类型值。

整型

类型长度(单位:字节)说明值范围默认值
int81带符号8位整型-128~1270
uint81无符号8位整型,与 byte 类型等价0~2550
int162带符号16位整型-32768~327670
uint162无符号16位整型0~655350
int324带符号32位整型,与 rune类型等价-2147483648~21474836470
uint324无符号32位整型0~42949672950
int648带符号64位整型-9223372036854775808~92233720368547758070
uint648无符号64位整型0~184467440737095516150
int32位或64位与具体平台相关与具体平台相关0
uint32位或64位与具体平台相关与具体平台相关0
uintptr与对应指针相同无符号整型,足以存储指针值的未解释位32位平台下为4字节,64位平台下为8字节0

intint64 也是不同的类型

var v1 int
var v2 int8
v1 = v2 // 编译错误

浮点类型

Go 语言中的浮点数定义了两个类型:float32float64float32 是单精度浮点数,可以精确到小数点后 7 位,float64 是双精度浮点数,可以精确到小数点后 15 位

var v1 float float32
var v2 float float64
v1 = 10 
v3 : = 10.0 // 如果不加小数点会被推导为整型,该方式默认推导为float64类型

永远不要比较两个浮点数是否相等

浮点数比较

v1 := 0.1512
v2 := 0.0109
j := 0.00001
// 一种近似判断,通过一个可以接受的最小误差值j,约定如果两个浮点数的差值在此精度的误差范围之内,则判定这两个浮点数相等
if math.Dim(float64(v1), v2) < j {
    fmt.Println("v1 和 v2 相等")
} 

复数类型

字符串

var str string
str = "hello 颖小主"
str1 := "您好,itfengfanzhe"

转译字符

  • \n :换行符
  • \r :回车符
  • \t :tab 键
  • \u 或 U :Unicode 字符
  • \\ :反斜杠自身

多行字符串

str := `
您好,这是
多行字符串
`
// 注意空格

不可变值类型

str := "hello word"
str[0] = 'X'  // 编译报错



文章评论

目录