https://github.com/Q1mi/go_tutorial
https://liwenzhou.com/
https://www.liwenzhou.com/posts/Go/golang-menu/
https://www.liwenzhou.com/posts/Go/install/
下载地址
Go官网下载地址:https://golang.org/dl/
Go官方镜像站(推荐):https://golang.google.cn/dl/
复制、粘贴到cmd命令行、回车。
之后什么都不用做,cmd命令行 也没有输出。
go env -w GOPROXY=https://goproxy.cn,direct
非常重要!!! 如果此时VS Code右下角弹出提示让你安装插件,务必点 install all 进行安装。
这一步需要先执行完上面提到的go env -w GOPROXY=https://goproxy.cn,direct命令配置好GOPROXY。
使用go module模式新建项目时,我们需要通过go mod init 项目名命令对项目进行初始化,该命令会在项目根目录下生成go.mod文件。例如,我们使用hello作为我们第一个Go项目的名称,执行如下命令。
go mod init hello
go mod init github.com/Q1mi/hello
后面跟, 别人 导入 你的 【包】 的名字。
go build
go build -o Out_Name.exe
只有一个go文件时,临时编译并执行,不生产exe文件
go run main.go
windows —— powershell
.\xxx.exe
windows —— cmd
xxx.exe
linux、mac
./xxx.exe
cmd 中 设置环境变量
不能在 windows 执行, 只能在 Linux 上执行
cmd中执行
go mod tidy
先 import , 并在代码中调用
再执行,go mod tidy
go get github.com/q1mi/hello
https://www.liwenzhou.com/posts/Go/var-and-const/
注意事项:
函数外的每个语句都必须以关键字开始(var、const、func等)
:=不能使用在函数外。
_多用于占位,表示忽略值。
const (
n1 = iota //0
n2 //1
n3 //2
n4 //3
)
const (
n1 = iota //0
n2 //1
_
n4 //3
)
const (
n1 = iota //0
n2 = 100 //100
n3 = iota //2
n4 //3
)
const n5 = iota //0
iota在const关键字出现时将被重置为0。
const (
_ = iota
KB = 1 << (10 * iota)
MB = 1 << (10 * iota)
GB = 1 << (10 * iota)
TB = 1 << (10 * iota)
PB = 1 << (10 * iota)
)
定义数量级
(这里的<<表示左移操作,
1<<10表示将1的二进制表示向左移10位,也就是由1变成了10000000000,也就是十进制的1024。
同理2<<2表示将2的二进制表示向左移2位,也就是由10变成了1000,也就是十进制的8。)
const (
a, b = iota + 1, iota + 2 //1,2, iota=0
c, d //2,3, iota=1
e, f //3,4
)
多个iota定义在一行
0+1, 0+2 = 1, 2 //, iota=0
1+1, 1+2 = 2, 3 //, iota=1
iota在const关键字出现时将被重置为0。
const中每新增【一行】常量声明将使iota计数一次
(iota可理解为const语句块中的行索引)。
使用iota能简化定义,在定义枚举时很有用。
注意: 在使用int和 uint类型时,不能假定它是32位或64位的整型,而是考虑int和uint可能在【不同平台上的差异】。
注意:
布尔类型变量的默认值为false。
Go 语言中不允许将整型强制转换为布尔型.
布尔型无法参与数值运算,也无法与其他类型进行转换。
Go语言中的字符串以【原生数据】类型出现,使用字符串就像使用其他原生数据类型(int、bool、float32、float64 等)一样。 Go 语言里的字符串的内部实现使用【UTF-8】编码。 字符串的值为双引号(")中的内容,可以在Go语言的源码中直接添加非ASCII码字符,例如:
方法 介绍
len(str) 求长度
+或fmt.Sprintf 拼接字符串
strings.Split 分割
strings.contains 判断是否包含
strings.HasPrefix,strings.HasSuffix 前缀/后缀判断
strings.Index(),strings.LastIndex() 子串出现的位置
strings.Join(a[]string, sep string) join操作
rune
英
/ruːn/
美
/ruːn/
n.
如尼字母(属于北欧古文字体系);神秘的记号;有魔力的符号