go语言学习(基本数据类型)

布尔类型

true false

布尔型数据只有 true(真)和 false(假)两个值

  1. 布尔类型变量的默认值为false
  2. Go 语言中不允许将整型强制转换为布尔型
  3. 布尔型无法参与数值运算,也无法与其他类型进行转换
go 复制代码
package main

import "fmt"

func main() {
    var b bool
    fmt.Println(b) //false 没有初始化,默认为false
    b1 := true
    fmt.Println(b1) //true

    b = 1 //编译报错,bool类型无法和其他类型互相转换

}

数值类型

整数类型
  1. 默认的数字定义类型是int类型
  2. 带个u就是无符号,只能存正整数
  3. 后面的数字就是2进制的位数
  4. uint8还有一个别名 byte, 一个字节=8个bit位
  5. int类型的大小取决于所使用的平台
类型 符号性 位数 取值范围(十进制) 说明
int8 有符号 8位 -128 ~ 127 最小的有符号整数,适合存储小范围整数(如状态码)
int16 有符号 16位 -32768 ~ 32767
int32 有符号 32位 -2³¹ ~ 2³¹-1 (约-21亿~21亿) 对应 rune(Unicode码点的别名)
int64 有符号 64位 -2⁶³ ~ 2⁶³-1 (约-922亿亿~922亿亿) 适合存储大范围整数(如时间戳、大计数)
uint8 无符号 8位 0 ~ 255 对应 byte(ASCII字符的别名)
uint16 无符号 16位 0 ~ 65535
uint32 无符号 32位 0 ~ 4294967295
uint64 无符号 64位 0 ~ 18446744073709551615
int 有符号 取决于系统(32位系统32位,64位系统64位) 同int32或int64 最常用的整数类型,适合多数场景(如循环索引、普通计数)
uint 无符号 int的位数 同uint32或uint64 用于存储非负整数,需注意与int的类型不兼容(不能直接运算)
uintptr 无符号 同指针位数(通常64位) 取决于系统 用于底层编程(如指针运算),存储指针的数值形式(非安全指针)
浮点型

Go语言支持两种浮点型数:float32 和 float64

  1. float32 的浮点数的最大范围约为3.4e38,可以使用常量定义:math.MaxFloat32
  2. float64 的浮点数的最大范围约为 1.8e308,可以使用一个常量定义:math.MaxFloat64

如果没有显式声明,则默认是float64

类型 位数 精度(有效数字) 范围(约) 说明
float32 32位 6-7位 ±1.4e-45 ~ ±3.4e38 单精度浮点数,适合内存敏感场景(精度要求低)
float64 64位 15-17位 ±4.9e-324 ~ ±1.8e308 双精度浮点数,默认浮点类型(精度更高,推荐优先使用)
特殊类型
go 复制代码
byte    // uint8 的别名
rune    // int32 的别名,表示 Unicode 码点

这两个后面的字符型会讲。

字符型

分为单字节字符(byte)和多字节字符(rune):

go 复制代码
package main

import "fmt"

func main() {

    var a byte = 'a'
    var b byte = 97
    fmt.Println(a) //97
    fmt.Println(b) //97
    //直接打印都是输出数字

    fmt.Printf("%c\n", a) //a
    fmt.Printf("%c\n", b) //b

    //汉字一般占2个字节以上,所以是多字节字符
    var y rune = '咬'
    fmt.Printf("%c\n", y) //咬
}
  1. 在 Go 中,字符的本质是一个整数,直接输出时,是该字符对应的 UTF-8 编码的码值
  2. 可以直接给某个变量赋一个数字,然后按格式化输出时 %c ,会输出该数字对应的 unicode 字符
  3. 字符类型是可以进行运算的,相当于一个整数,因为它都对应有 Unicode 码。

字符串

string

go 复制代码
package main

import "fmt"

func main() {
    var s string = "Y_Yao"
    fmt.Println(s) // Y_Yao
}
转义字符
go 复制代码
package main

import "fmt"

func main() {
    // 1. 常见转义字符示例
    fmt.Println("=== 常见转义字符 ===")
    fmt.Print("Hello,\tWorld!\n")            // Hello,   World!
    fmt.Println("Path: C:\\Users\\Admin")    // Path: C:\Users\Admin
    fmt.Println("He said, \"Go is great!\"") // He said, "Go is great!"

    // 2. 进制表示示例
    fmt.Println("\n=== 进制表示 ===")
    fmt.Println("\\x41:", "\x41")             // A
    fmt.Println("\\u0041:", "\u0041")         // A
    fmt.Println("\\U00000041:", "\U00000041") // A
    fmt.Println("\\101:", "\101")             // A (八进制)

    // d使用反引号(原始字符串),注意此时里面无法再使用转义字符
    multi2 := `Line 1
Line 2
Line 3`
    fmt.Println("\n使用反引号:")
    fmt.Println(multi2)
}
类别 转义字符 说明 示例输出
换行回车 \n 换行符 多行文本
\r 回车符 行首开始
制表对齐 \t 水平制表 列对齐
\v 垂直制表 垂直对齐
特殊符号 \\ 反斜杠 \
\" 双引号 "
\' 单引号 '
控制字符 \a 响铃/警告 终端响铃
\b 退格 回退字符
\f 换页 打印机换页
进制表示 \xHH 十六进制(2位) \x41 → 'A'
\uHHHH Unicode(4位) \u0041 → 'A'
\UHHHHHHHH Unicode(8位) \U00000041 → 'A'
\ooo 八进制(3位) \101 → 'A'
相关推荐
:1212 分钟前
java基础
java·开发语言
SilentSamsara42 分钟前
Python 环境搭建完整指南:从下载安装到运行第一个程序
开发语言·python
小短腿的代码世界1 小时前
Qt文件系统与IO深度解析:从QFile到异步文件操作
开发语言·qt
星幻元宇VR1 小时前
VR航空航天科普设备【VR时空直升机】
科技·学习·安全·生活·vr
_李小白1 小时前
【android opencv学习笔记】Day 2: Mat类(图片数据结构体)
android·opencv·学习
harder3212 小时前
RMP模式的创新突破
开发语言·学习·ios·swift·策略模式
jinanwuhuaguo2 小时前
OpenClaw工程解剖——RAG、向量织构与“记忆宫殿”的索引拓扑学(第十三篇)
android·开发语言·人工智能·kotlin·拓扑学·openclaw
Rust研习社2 小时前
使用 Axum 构建高性能异步 Web 服务
开发语言·前端·网络·后端·http·rust
程序猿乐锅3 小时前
【Tilas|第三篇】多表SQL语句
数据库·经验分享·笔记·学习·mysql
徐某人..3 小时前
基于i.MX6ULL平台的智能网关系统开发
arm开发·c++·单片机·qt·物联网·学习·arm