Go语言学习:基本类型与转换详解
124 浏览量
更新于2024-08-30
收藏 79KB PDF 举报
本文主要介绍了Golang编程语言中的基本类型、类型转换、类型别名以及变量的默认值,是Golang学习笔记的第二部分。
在Golang中,基本类型是编程中最基础的数据单元,包括:
1. **布尔类型**(bool):占用1个字节,有两个可能的值:`true` 和 `false`,默认值为 `false`。不能将非0值视为 `true`,避免数字与布尔值混淆。
2. **字节类型**(byte):实际上是 `uint8` 的别名,占用1个字节。
3. **rune类型**:等同于 `int32`,用于表示Unicode码点,占用4个字节。
4. **整数类型**:包括 `int` 和 `uint`,其长度取决于运行平台(32位或64位)。还有对应的8、16、32和64位整数类型,如 `int8`、`uint16` 等,它们有各自的取值范围。
5. **浮点数类型**:`float32` 和 `float64` 分别对应C语言中的 `float` 和 `double`,分别精确到7位和15位小数。
6. **复数类型**:`complex64` 和 `complex128` 分别占8字节和16字节。
7. **无符号整数类型**:例如 `uint` 和 `uint64`,不包含负数。
8. **指针类型**(uintptr):用以存储指针的32位或64位整数,但不能直接操作。
9. **数组类型**(array):固定长度的值类型。
10. **结构体类型**(struct):由多个不同类型的值组合而成的复合类型。
11. **字符串类型**(string):表示文本,是值类型。
12. **切片类型**(slice):引用类型,类似动态数组,可以动态调整大小。
13. **映射类型**(map):键值对的集合,引用类型。
14. **通道类型**(channel):用于goroutine之间的同步通信。
15. **接口类型**(interface):定义一组方法签名,允许不同类型的值在满足接口条件时交互。
16. **函数类型**(function):可以作为参数或返回值。
**类型转换** 在Go语言中是显式的,即需要明确指定转换的目标类型。例如,将十六进制数转换为 `uint8` 类型,或将浮点数转换为 `int` 类型。转换仅发生在兼容的类型之间,如各类整型之间是不兼容的,不能直接转换。
**类型别名** 允许创建一个已存在类型的别名,例如 `type t_str string`,`t_str` 就是 `string` 的别名。
**类型默认值** 当声明变量但未赋值时,会赋予类型默认的零值:
- **布尔类型**:`false`
- **整数类型**:`0`
- **浮点数类型**:`0.0`
- **字符串类型**:`""`(空字符串)
- **指针、函数、接口、切片、通道、映射**:`nil`
保留字 `break` 是Golang中的控制流程关键字,用于跳出循环或switch语句。
这些基础知识是编写Go程序的基础,理解并掌握它们对于学习Go语言至关重要。通过深入理解这些概念,开发者可以有效地编写出高效、安全的Go代码。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2015-10-26 上传
2014-04-01 上传
2022-08-03 上传
2022-07-03 上传
2021-05-06 上传
2019-08-13 上传
weixin_38611877
- 粉丝: 5
- 资源: 925
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍