Golang学习参考: Golang是顺序执行语言,函数内顺序不同,执行的结果不同!golang
0)Golang入门这一页就够了:https://tour.go-zh.org/concurrency/11 (各类权威资料汇总)编程
0.1)Go编程语言规范: https://go-zh.org/ref/spec#Operands (数据类型,函数,运算符,逻辑关系等详解)c#
0.2)Golang的25个关键字解析:https://juejin.im/post/5b43674d5188251b176a4c8b数组
0.3)除了关键字还有,内建函数例如make,append等都是不要定义具体函数即可以使用的方法。builtin 函数详解:http://learning-golang.lofter.com/post/c9bfc_1a6a87 和:http://golang.org/pkg/builtin/ 其中包含了:/* 内置类型 、 引用类型:(指针类型) 、内置函数、内置接口error:app
type error interface { Error() String} //只要实现了Error()函数,返回值为String的都实现了err接口编程语言
1)语法汇总:https://blog.csdn.net/cabing2005/article/details/60585961 (CSDN) and https://www.jianshu.com/p/b368420cb994 (简书)函数
2)语法实例与讲解:https://www.jb51.net/article/128964.htm (原理清楚便于实践)post
3)Go代码网页运行:https://www.jdoodle.com/execute-go-online (其余语言也能够)学习
4)Golang基础学习网页版:https://tour.go-zh.org/ (专门学习网站,右上角选择对应章节)网站
Golang运行环境与系统相关:
1)查看golang运行环境:go env 2) 运行go程序:go run ***.go ( ***.go为go文件,前提为go环境搭建完毕)
3)执行godoc -http=:portID 再执行:localhost: portID 查看本地文档
4)按照约定,包名与导入路径的最后一个元素一致。例如,"math/rand" 包中的源码均以 package rand 语句开始。
5)全局变量是容许声明但不使用,局部变量不能从新声明并且声明了必需要使用
6)导入能够import ( "fmt") 也能够: import "math" 效果相同
7)函数外的每一个语句都必须以关键字开始(var, func 等等),所以 := 结构不能在函数外使用。
Go语法相关
1)Go 的 if 语句与 for 循环相似,表达式外无需小括号 ( ) ,而大括号 { } 则是必须的。
2)defer 语句会将函数推迟到外层函数返回以后执行。推迟调用的函数其参数会当即求值,但直到外层函数返回前该函数都不会被调用。关于defer 的详解。
3)Go 拥有指针。指针保存了值的内存地址。类型 *T
是指向 T
类型值的指针。其零值为 nil
。&
操做符会生成一个指向其操做数的指针。*
操做符表示指针指向的底层值。
4)一个结构体(struct
)就是一个字段的集合。结构体字段使用点号来访问。
5)切片并不存储任何数据,它只是描述了底层数组中的一段。更改切片的元素会修改其底层数组中对应的元素。(切片的长度就是它所包含的元素个数。切片的容量是从它的第一个元素开始数,到其底层数组元素末尾的个数,不管末尾切片数字多少)(nil 切片的长度和容量为 0 且没有底层数组。)切片可包含任何类型,甚至包括其它的切片。 内置函数 func make([]T, len, cap) []T
能够用来建立切片,该函数接受长度和容量做为参数,返回切片。容量是可选的,默认与长度相同。使用 make
函数将会建立一个数组并返回它的切片。 Golang 切片详解: https://blog.csdn.net/u011304970/article/details/74938457
6)