Go 基础 变量 数据类型

数据类型


我们经常看到这样的变量声明:

var (
    a int 
    b string
    c float32
)

在Go中所有变量都是有类型的, 比如前面的int, string, float32 这些, 因此在接下来我们将先讲解下Go的基础类型

go在语言成面定义了如下几种基础类型:

  • 整形 12345
  • 浮点型 123.45
  • 复数 123.45i
  • 字符 'a'
  • 字符串 "abc"
  • 布尔类型 true, false
  • 枚举类型 iota
  • 自定义类型

 

 

整形


类型名 字节宽度 取值范围
int 与平台有关 32 位系统 4 字节,64 位系统 8 字节 有符号整型
uint 与平台有关 32 位 系统 4 字节,64 位 系统 8 字节 无符号整形
int8 1 字节 用 8 位表示的有符号整型 取值范围为:[-128, 127]
int16 2 字节 用 16 位表示的有符号整型 取值范围为:[-32768,32767]
int32 4 字节 用 32 位表示的有符号整型,取值范围为:[-2147483648,2147483647]
int64 8 字节 用 64 位表示的有符号整型,取值范围为:[-9223372036854775808,9223372036854775807]
uint8 1 字节 用 8 位表示的无符号整型,取值范围为:[0,255]
uint16 2 字节 用 16 位表示的无符号整型,取值范围为:[0,65535]
uint32 4 字节 用 32 位表示的无符号整型,取值范围为:[0,4294967295]
uint64 8 字节 用 64 位表示的无符号整型,取值范围为:[0,18446744073709551615]
uintptr 与平台有关 32 位系统 4 字节,64 位系统 8 字节指针值的无符号整型

 

 

浮点型


类型名 字节宽度 取值范围
float32 4字节 IEEE-754 32位浮点型数
float64 8字节 IEEE-754 64位浮点型数
complex64 4字节 32 位实数和虚数
complex128 8字节 64 位实数和虚数

 

 

别名


类型名 字节宽度 取值范围
byte 1 字节 字节类型,取值范围同 uint8
rune 4 字节 Unicode 码点 取值范围同 uint32

 

 

字符串类型


Go 语言内置了字符串类型,使用 string 表示

字面量:

  • 可解析字符串:通过双引号(")来创建,不能包含多行支持特殊字符转义序列
  • 原生字符串:通过反引号(`)来创建,可包含多行,不支持特殊字符转义序列

特殊字符:

  • \:反斜线
  • ':单引号
  • ":双引号
  • \a:响铃
  • \b:退格
  • \f:换页
  • \n:换行
  • \r:回车
  • \t:制表符
  • \v:垂直制表符
  • \ooo:3 个 8 位数字给定的八进制码点的 Unicode 字符(不能超过\377
  • \uhhhh:4 个 16 位数字给定的十六进制码点的 Unicode 字符
  • \Uhhhhhhhh:8 个 32 位数字给定的十六进制码点的 Unicode 字符
  • \xhh:2 个 8 位数字给定的十六进制码点的 Unicode 字符

 

 

布尔类型


布尔类型用于表示真假,类型名为 bool,只有两个值 true 和 false,占用一个字节宽度,零值为 false

var (
    IsBoy  bool = true
    IsGirl bool = true
)

 

 

枚举类型


常使用 iota 生成器用于初始化一系列相同规则的常量,批量声明常量的第一个常量使用 iota 进行赋值,此时 iota 被重置为 0,其他常量省略类型和赋值,在每初始化一个常量则 加 1

import (
	"fmt"
)

const (
	a = iota
	b
	c
	d
)

func main() {
    var
	fmt.Println(a, b, c, d)
}

 

 

自定义类型


 在 go 语言中使用 type 声明一种新的类型,语法格式为: type TypeName Formatter

比如我们可以定义自己

type Gender string

Guess you like

Origin blog.csdn.net/qq_34556414/article/details/121315992