go语言基础知识
1.Go 文档查看
1.1.命令行直接查看
go doc strings.Split
1.2.本地启动 web
- 命令行启动文档程序,然后浏览器打开本地 9000 端口
go doc -http=:9000
2.GO 环境变量
GOROOT
- Go 语言安装根目录的路径,也就是 GO 语言的安装路径。例如:/usr/local/go
GOPATH
- Go 语言工作区目录的路径,是我们自己定义的工作空间
Linux: $HOME/go
Linux: /home/zhaoshuai/go
Windows: %USERPROFILE%\go
Windows: D:\workspace\go
Mac:
GOBIN
- GO 程序生成的可执行文件(executable file)路径
实例演示
# 配置全局环境变量
vim /etc/profile
---------------------------------
export GOROOT=/usr/local/go
export GOPATH=/home/zhaoshuai/go
export GOBIN=/home/zhaoshuai/go/bin
export PATH=$GOROOT/bin:$PATH
---------------------------------
source /etc/profile
# 也可以配置用户环境变量
vim ~/.bash_profile
go version
- 注意:
go1.8 以下版本必须手动设置环境变量
go1.8 及以后的版本会有默认环境变量
3.Go 语言源码文件目录结构
go 项目中不同项目源码文件一般以目录进行分割,也就是一个目录就代表一个项目
go 项目中有两种源码文件,命令源码文件 与 库源码文件
3.1.命令源码文件
- 命令源码文件,一般也称为主程序
1.命令源码文件必须以 package main 开头,且必须定义 main() 函数,所以定义了 main() 函数的源码文件就是命令源码文件
2.命令源码文件的名称不必为 main.go,在编译时会生成同名的二进制可执行文件,该文件名可以自定义
3.同一个项目中只能存在一个命令源码文件(main 函数),如果存在多个,则无法正常编译
3.2.库源码文件
1.库源码文件不必以 package main 开头
2.如果是创建库项目,可以自定义库的包名
4.Go 与其他编程语言的差异
4.1.Go 退出返回值
go 中 main 函数不支持任何返回值,可以通过 os.Exit 来返回状态
4.2.main 函数不支持传入参数
不支持: func main(arg []string) 的用法
在程序中直接通过 os.Args 获取命令行参数
4.3.Go 相关命名规范
使用驼峰命名法
源码文件建议以下划线分割: xxx_test.go
定义方法名的单词或者缩写首字母需要大写:func Test(t &testing.T){}
4.4.Go 变量命名
赋值类型可以进行自动推断
在一个赋值语句中可以对多个变量进行赋值
5.Go 语言特性
垃圾回收
内存自动回收,再也不需要开发人员管理内存
开发人员专注业务实现,降低了心智负担
只需要new分配内存,不需要释放
天然并发
从语言层面支持并发,非常简单
goroute,轻量级线程,创建成千上万个goroute成为可能
基于CSP(Communicating Sequential Process)模型实现
不需要考虑多和问题,并发问题
nginx 并发支持多核处理,多核主机可以配置多个worker
Redis 只支持单核处理,所以可以起多个实例
6.go语言的标识符
- 程序员定义的具有特殊意义的词
例如:变量名、常量名、函数名等等,用于存储数据(内存空间)
- Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头
例如:abc, _, _123, a123
7.go语言的关键字
-
指编程语言中预先定义好的具有特殊含义的标识符
-
关键字和保留字都不建议用作变量名
-
程序主体内只能以固定的 25 个关键字开头
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
- Go 语言中有 37 个保留字
Constants: true false iota nil
Types: int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex64 complex128
bool byte rune string error
Functions: make len cap new append copy close delete
complex real imag
panic recover
10.参考地址
GO 官网: https://golang.google.cn/
GO 语言规范: https://golang.google.cn/ref/spec
GO 语言开发-命令详解: https://golang.google.cn/cmd/go/
GO 语言开发-golang中国: https://golangtc.com/download
GO 语言中文网: https://studygolang.com/pkgdoc
GO 语言核心36讲-GO命令教程: https://github.com/hyper0x/go_command_tutorial