go语言基础知识

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
posted @ 2022-01-07 15:16  天生帅才  阅读(294)  评论(0编辑  收藏  举报
// 百度统计