Golang

安装

Go安装,为什么会在/root和/home/ghy目录下同时存在go文件夹,我猜测哪个用户使用了go,那么就会在对应用户目录包含go文件夹,印证方式是当以root用户安装gopls时,在/root/go下出现了bin文件夹

命令行运行export PATH=$PATH:/usr/local/go/bin只能在当前终端生效,永久修改需要在/etc/profile最后添加这句话

不使用go mod包管理工具,则目前版本默认的GOPATH是 GOPATH="/home/ghy/go",形成的src,bin,pkg都在这个路径下
启用go mod,在/etc/profile中添加如下内容

export PATH=$PATH:/usr/local/go/bin
export GOPROXY=https://goproxy.cn,direct
export GO111MODULE=on

go mod发布和使用

go getgo install 区别

In earlier versions of Go, 'go get' was used to build and install packages.
Now, 'go get' is dedicated to adjusting dependencies in go.mod. 'go install'
may be used to build and install commands instead. When a version is specified,
'go install' runs in module-aware mode and ignores the go.mod file in the
current directory.

大小写的访问权限

无论是方法名、常量、变量名还是结构体的名称,如果首字母大写,则可以被其他的包访问;如果首字母小写,则只能在本包中使用

关于引用其他go文件中声明的变量,即使是在同一个包中,也有可能有多个文件中包含相同名称的变量,为了区分,在引用变量时必须使用包名进行引用,这并不难理解,包就相当于c++中的命名空间,必需指定是哪一命名空间中的变量

Go 的包概念

go get 应当是把别人发布的包下载到$GOPATH/go下面专门存放包的位置了,例如在执行完go get gopkg.in/ini.v1后,下面的路径中就出现了gopkg.in包,然后在写代码时就可以直接import "gopkg.in/ini.v1"

声明语法

Go's Declaration Syntax

import导包特殊形式

  1. 下划线:仅调用包中的init()函数,此时无法通过包名来调用包中的导出函数
  2. 点:导入之后在调用这个包的函数时,可以省略前缀的包名
  3. 别名:import f "fmt",调用语句为f.Println()

常见错误

  1. map赋值前要先初始化,否则会报错 assignment to entry in nil map

Reference

Go 入门指南

posted @ 2023-01-18 23:54  0x7F  阅读(69)  评论(0编辑  收藏  举报