vscode开发go初体验
背景
go初体验
下载安装go环境
在go downloads中下载,本文写作时的最新版本为go1.16.3.windows-amd64。
命令行版本的hello world
编辑文本文件helloworld.go
内容如下:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
直接运行
λ go run helloworld.go
Hello, World!
编译
λ go build helloworld.go
运行二进制文件
λ .\helloworld.exe
Hello, World!
vscode运行
安装vscode插件
安装插件
Go for VS Code v0.24.2
安装命令
set GOPROXY=https://mirrors.aliyun.com/goproxy/
go get -v golang.org/x/tools/cmd/goimports
设置环境变量
GO111MODULE = "on"
GOPROXY = "https://mirrors.aliyun.com/goproxy/"
编写一个网络demo
go.mod
module abeffect.com/v1
go 1.16
http_get.go
package util
import (
"bytes"
"encoding/json"
"io"
"io/ioutil"
"net/http"
"time"
)
// 发送GET请求
// url: 请求地址
// response: 请求返回的内容
func Get(url string) string {
// 超时时间:5秒
client := &http.Client{Timeout: 5 * time.Second}
resp, err := client.Get(url)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var buffer [512]byte
result := bytes.NewBuffer(nil)
for {
n, err := resp.Body.Read(buffer[0:])
result.Write(buffer[0:n])
if err != nil && err == io.EOF {
break
} else if err != nil {
panic(err)
}
}
return result.String()
}
helloworld.go
package main
import (
"fmt"
"abeffect.com/v1/util"
)
func main() {
fmt.Println("Hello, World!")
res := util.Get("http://www.baidu.com")
fmt.Println(res)
}
在vscode中的运行方法同。