四、Go 常用命令汇总
| 命令 | 作用 |
|---|---|
go mod init xxx |
初始化 Go Module 项目,生成go.mod文件,开启模块化管理 |
go mod tidy |
自动整理项目依赖:添加代码用到的包,删除未使用的包 |
go build |
编译源码,生成可执行二进制文件,文件保留在磁盘 |
go run 文件名.go |
临时编译并且直接运行代码,不会保存编译后的二进制文件 |
go install |
下载源码,编译输出可执行程序到 bin 目录 |
go get [-u] 包地址 |
下载第三方源码包,-u更新包版本 |
go env |
查看全部 Go 环境变量 |
go version |
查看 Go 版本号 |
Go 项目布局
-
最小化工程布局
MyPro
├─ go.mod
├─ xxx.go
└─ yyy.go -
带多包的工程布局
MyPro1
├─ go.mod
├─ pkg1
│ └─ pkg1.go
└─ pkg2
└─ pkg2.go
五、计算机基础:冯诺依曼体系五大部件
- CPU
- 运算器:负责算术、逻辑运算;主频越高,单位时间运算次数越多,受物理限制,所以发展多核 CPU
- 控制器:指挥协调各个硬件工作
- CPU 内部:寄存器(临时存放计算数据)、Cache 高速缓存
- 存储器 Memory(内存) :运行内存,速度快,断电数据丢失
- 输入设备 Input:向计算机输入数据(键盘、鼠标等)
- 输出设备 Output:输出处理后的数据(显示器、打印机等)
其他硬件概念
- 主板:计算机骨架,芯片组负责硬件协调
- 显卡:处理图形数字信号,输出画面到显示器
- 总线 Bus:分为数据总线、控制总线,硬件之间传输信号
- 硬盘:持久化存储,断电数据不丢失,速度比内存慢
- 时钟振荡器:产生时钟脉冲,驱动数字电路工作,决定硬件运行频率;CPU 主频 > 内存频率 > IO 外设频率
重要原理:IO 设备不和 CPU 直接交互,CPU 只直接和内存交换数据。
编译型语言 vs 解释型语言
表格
| 类型 | 原理 | 代表语言 |
|---|---|---|
| 编译型语言 | 源代码直接编译为当前 CPU 平台本地机器指令,直接操作系统运行,不需要虚拟机 | Go、C、C++ |
| 解释型语言 | 源码转成字节码,依赖虚拟机 / 解释器执行字节码 | Java、Python、C# |
Go 语言定位:强类型、静态编译型语言
- 声明变量必须明确指定类型
- 不允许隐式类型转换,类型转换必须显式强制转换
- 编译生成原生可执行程序,不依赖虚拟机
- 自带垃圾回收 GC
六、程序、算法与数据结构
程序 = 算法 + 数据结构
- 数据是程序的核心
- 数据结构:数据在内存中的组织、存储形式;内存是线性编址,按字节编号
- 算法:处理数据的逻辑步骤,算法存在性能优劣
- 高性能程序 = 合适的数据结构 + 适配的算法