type
status
date
slug
summary
tags
category
icon
password
AI summary
Go 语言基础之基本数据类型
1. 什么是基本数据类型
Go 语言是一种静态强类型语言,所有变量在使用之前都需要指定类型。Go 提供了一组基础数据类型,用于处理各种类型的值。
2. Go 的基本数据类型分类
2.1 布尔类型
- 类型:
bool
- 取值范围:
true
或false
- 默认值:
false
- 示例:
2.2 整型
有符号整型
类型 | 大小(位) | 取值范围 |
int8 | 8 | -128 ~ 127 |
int16 | 16 | -32,768 ~ 32,767 |
int32 | 32 | -2,147,483,648 ~ 2,147,483,647 |
int64 | 64 | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
无符号整型
类型 | 大小(位) | 取值范围 |
uint8 | 8 | 0 ~ 255 |
uint16 | 16 | 0 ~ 65,535 |
uint32 | 32 | 0 ~ 4,294,967,295 |
uint64 | 64 | 0 ~ 18,446,744,073,709,551,615 |
- 通用整型:
int
和uint
的大小取决于具体架构(32 位或 64 位)。- 示例:
2.3 浮点型
类型 | 大小(位) | 精度 |
float32 | 32 | 约 6-7 位小数精度 |
float64 | 64 | 约 15-16 位小数精度 |
- 示例:
2.4 复数类型
类型 | 大小(位) | 描述 |
complex64 | 64 | 实部和虚部均为 float32 |
complex128 | 128 | 实部和虚部均为 float64 |
- 示例:
2.5 字符类型
- 类型:
byte
和rune
- 描述:
byte
:等同于uint8
,用于表示 ASCII 字符。rune
:等同于int32
,用于表示 Unicode 字符。
- 示例:
2.6 字符串类型
- 类型:
string
- 描述:
- 字符串是不可变的字符序列。
- 默认值是空字符串
""
。
- 示例:
2.6.1 字符串转义符
Go 语言支持使用转义字符来表示特殊字符,以下是常见的转义符列表:
转义符 | 描述 |
\n | 换行符 |
\t | 制表符 |
\\ | 反斜杠 |
\" | 双引号 |
\' | 单引号 |
\r | 回车符 |
\b | 退格符 |
\f | 换页符 |
- 示例代码:
输出:
2.6.2 原始字符串
Go 支持使用反引号
`
定义原始字符串(Raw String),其中的内容会保持原样,不解析转义字符。- 示例代码:
输出:
2.6.3 字符串的常用操作
2.6.3.1 获取字符串长度
使用内置的
len()
函数可以获取字符串的长度(以字节为单位)。- 示例代码:
2.6.3.2 拼接字符串
使用
+
或 fmt.Sprintf()
拼接字符串。- 示例代码:
2.6.3.3 字符串切片
通过下标操作可以提取字符串的部分内容。
- 示例代码:
2.6.3.4 查找子串
使用
strings.Contains
或 strings.Index
查找子串。- 示例代码:
2.6.3.5 字符串分割
使用
strings.Split
分割字符串。- 示例代码:
2.6.3.6 字符串替换
使用
strings.Replace
替换子串。- 示例代码:
2.6.3.7 修改大小写
使用
strings.ToUpper
和 strings.ToLower
修改字符串的大小写。- 示例代码:
2.6.3.8 去除空白字符
使用
strings.TrimSpace
去除字符串首尾的空白字符。- 示例代码:
2.6.4 示例代码:综合运用
2.7 派生类型
- 数组
- 切片
- 结构体
- 接口
- 指针
这些属于高级特性,将在后续学习中详细讲解。
3. 类型转换
Go 语言不支持隐式类型转换,所有类型转换必须显式进行。
- 示例:
4. 零值
Go 语言的变量在声明时会被赋予类型的默认零值。
类型 | 默认值 |
布尔类型 | false |
数字类型 | 0 |
字符串类型 | "" |
指针类型 | nil |
- 示例:
5. 示例代码
6. 总结
- Go 提供了一组简单且高效的基础数据类型。
- 变量必须显式声明其类型,或通过类型推断自动确定。
- 理解每种数据类型的特点和使用场景是 Go 编程的基础。
- 作者:IT小舟
- 链接:https://www.codezhou.top/article/%E5%9F%BA%E6%9C%AC%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。