> 系统命令
```
go mod init hello//初始化hello
//运行
go run hello.go
//打包
go build hello.go
//打包并命名
go build -o hello1.exe hello.go
go build -race hello.go //可以查看协程竞争关系
```
> 应用读取参数
```
package main
import (
"fmt"
"os"
)
func main() {
fmt.Println("命令行的参数有", len(os.Args))
for i, v := range os.Args {
fmt.Printf("args[%v】=%v\n", i, v)
}
}
hello.exe -a -b -c //第一个参数为文件路径
go run hello -a -b -c//会先编译为exe,第一个参数为文件路径
```
> 随意参数顺序 类似-u xxx -p yyy 使用flag包
```
//变量
//指定参数前加-
//默认值
//说明
flag.StringVar(&user,"u","默认值","说明")
flag.IntVar(&user,"u","默认值","说明")
flag.Parse()//最后一定要调用这个方法会转换传进来的args
```
- 数据类型
- 数组array
- 切片slice
- 字符串string
- map
- 结构体struct
- 方法func
- 匿名结构体(继承)
- 字段别名
- 接口interface
- 常量
- 基础语法
- 循环for
- 遍历
- 函数func
- defer
- 异常处理error
- 访问范围
- 包
- 类型断言
- 文件
- 打开文件
- 读取文件
- 写文件
- 判断是否存在
- 拷贝文件
- JSON
- 序列化
- 反序列化
- 命令行
- 杂项
- Windows下配置加速
- 相关链接
- 占位符
- 随机数rand
- 单元测试
- goroutine
- 并发和并行
- 协程和主线程
- MPG模式
- 设置CPU数量
- 全局互斥锁
- 管道
- 示例1
- 示例2
- select
- 异常捕获
- 反射
- 示例
- 示例-改变值
- 网络编程
- TCP编程
- 示例一
- redis