好了,废话不多说,let's go!
搭建环境
我是window,比较简单。
先去官网https://golang.google.cn/ 下载一个包,安装好就行了。然后设一个环境变量。
将安装路径设置为GOROOT
然后在path里加入:%GROOT%bin
在终端输入go version,这时会显示你的go的版本信息,环境就搭建起来了。
在编辑器vscode里面装go和code runner插件。
在做Go语言开发的时候为我们提供诸如代码提示、代码自动补全等功能。
在此之前请先设置GOPROXY,打开终端执行以下命令:
go env -w GOPROXY=https://goproxy.cn,direct
Windows平台按下Ctrl+Shift+P,Mac平台按Command+Shift+P
我们在这个输入框中输入>go:install,下面会自动搜索相关命令,我们选择Go:Install/Update Tools这个命令,将工具都装上。
当工具都装好了以后,我们去 文件->首选项->设置, 将自动保存设置好。
设置snippets。还是按Ctrl/Command+Shift+P,按下图输入>snippets,选择go.
其中$0表示最终光标提留的位置。举个例子,我这里创建了两个快捷方式,一个是输入pln就会在编辑器中插入fmt.Println()代码;输入plf,就会插入fmt.Printf("")代码。
{
"println":{
"prefix": "pln",
"body":"fmt.Println($0)",
"description": "println"
},
"printf":{
"prefix": "plf",
"body": "fmt.Printf("$0")",
"description": "printf"
}
}
第一行代码:
这时你可以在你的项目目录下,新建一个工程项目project(一个文件夹就行),在项目目录下新建go文件test.go,选择一个编辑器打开并输入一下简单代码:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
fmt.Printf("heloo")
}
由于go是采用包,来进行管理,因此,go语法规定,程序代码第一行必须注明包名,这里是main
import是导入标识符,便于把一些外部的已经写好的包or库,引入到本程序中
函数:函数通过 func FunctionName( [parameter list] ) [return_types] 来标记,其中输入参数列表和输出参数列表如果没有,可以略去。main 函数是一个可执行程序必须包含的函数。
变量:如函数第一行和第二行,声明了两个变量,Who 和 inputReader,这是 Go 声明变量的两种方式。前者通过关键字 var 来实现,后者通过 := 来实现,两者效果相同,前者更为正式,用于声明一些重要变量,后者相对随意,常用于声明一些不太重要的变量。
打开终端,选择到project目录下执行
go run test.go
如果你看到Hello,World!那么你就成功了。
当然,也可以通过 go build HelloWorld.go 生成二进制文件,再通过 .HelloWorld 来执行程序。
你也可以来调试代码, 需要在左边的debug 来打开文件夹,并且将
launch.json里面的配置改一下
// "program": "${fileDirname}",
"program": "${workspaceFolder}",
然后调试就像这样了。
OK, 来玩一把:
package main
import (
"fmt"
"net/http"
"strings"
)
func main() {
url := "https://shanghaicity.openservice.kankanews.com/public/bus/Getstop"
contentType := "application/json"
data := `{
"stoptype": 1,
"stopid": "18.",
"sid": "56a7be0ecd56f84406d39759c67ee665"
}`
resp, err := http.Post(url, contentType, strings.NewReader(data))
if err != nil {
fmt.Println("post failed, err:%vn", err)
fmt.Println(resp)
return
} else {
fmt.Println(err)
}
}
看起来是不是跟python很像?