vscode开发go初体验

  |   0 评论   |   0 浏览

背景

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中的运行方法同。

参考