开发环境搭建
1. 安装Go
打开网址https://golang.org/dl/
IDE搭建(vscode)
打开网址:https://code.visualstudio.com
b. 根据操作系统选择对应的安装包
. 点击安装包进行安装(linux直接解压)
a. 新建目录/home/user/project/go/src/listen1
b. 用vscode打开目录/home/user/project/go/src/listen1
c. 右键新建文件hello.go,保存
d. vscode会提示你安装一些go的工具,我们点击install all
3. 调试工具delve安装
a.打开网址:
https://github.com/derekparker/delve/tree/master/Documentation/installation
b. mac: brew install go-delve/delve/delve
c. linux&windows: go get github.com/derekparker/delve/cmd/dlv
golang语言特性
1. 垃圾回收
a.内存自动回收,再也不需要开发人员管理内存
b.开发人员专注业务实现,降低了心智负担
只需要new分配内存,不需要释放
golang语言特性
2. 天然并发
从语言层面支持并发,非常简单
goroute,轻量级线程,创建成千上万个goroute成为可能
基于CSP(Communicating Sequential Process)模型实现
func main() {
go fmt.Println(“hello")
}
3. channel
管道,类似unix/linux中的pipe
b. 多个goroute之间通过channel进行通信
支持任何类型
func main() {
pipe := make(chan int,3)
pipe <- 1
pipe <- 2
}
4. 多返回值
一个函数返回多个值
func calc(a int, b int)(int,int) {
sum := a + b
avg := (a+b)/2
return sum, avg
}
第一个golang程序
1. hello world,在listen1目录下新建hello.go
package main
import(
“fmt”
)
func main() {
fmt.Println(“hello world”)
}
包的概念
1. 和python一样,把相同功能的代码放到一个目录,称之为包
2. 包可以被其他包引用
3. main包是用来生成可执行文件,每个程序只有一个main包
4. 包的主要用途是提高代码的可复用性
包的实战
1. 在listen1目录下新建calc目录
2. 在calc目录下新建calc.go
package calc
func Add(a int, b int) int {
return a + b
}
1. 修改hello.go代码,如下
package main
import(
“fmt”
“calc”
)
func main() {
sum := calc.Add(3,5)
fmt.Println(“hello world,%d”,sum)
}