Go项目学习

跟着方应杭学习 Go

安装

下载地址

Go官网下载地址:https://golang.org/dl/open in new window

下载完之后双击安装

查看是否安装成功

go version

配置 Go 配置

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

安装 gowatch

go get github.com/silenceper/gowatch

在 vscode 中安装

启动vscode选择插件->搜go选择Go for Visual Studio Code插件点击安装即可

其次安装 go 的插件:

Windows平台按下Ctrl+Shift+P,Mac平台按Command+Shift+P,这个时候VS Code界面会弹出一个输入框,如下图:

VScode安装插件

第一个 go 程序

src目录下创建一个hello目录,在hello目录中创建一个main.go文件

package main  // 声明 main 包,表明当前是一个可执行程序

import "fmt"  // 导入内置 fmt 

func main(){  // main函数,是程序执行的入口
    fmt.Println("Hello World!")  // 在终端打印 Hello World!
}

在hello目录下执行:go run .

在终端直接执行报错:go: cannot find main module; see 'go help modules'

原来在因为设置"GO111MODULE=on",所以 go 的默认管理依赖就变成了 go module 模式,而 go.mod 文件描述的是项目依赖的包和版本

PS:类似前端 package.json 文件

所以我们先生成 go.mod,

go mod init

接着就能看到「Hello World!」

go run

当然,如果要实时查看编译结果,就需要用 gowatch

gowatch run .
// 或者 gowatch

熟悉各种库

zserge/lorca

是什么:一个制作桌面应用的库

地址:https://github.com/zserge/lorcaopen in new window

下载:go get github.com/zserge/lorca

注意:下载库的时候不要加 https 协议

demo

// package main // 声明 main 包,表明当前是一个可执行程序

// import "fmt" // 导入内置 fmt

// func main(){  // main函数,是程序执行的入口
//     fmt.Println("Hello World112!")  // 在终端打印 Hello World!
// }

package main

import (
	"log"
	"net/url"

	"github.com/zserge/lorca"
)

func main() {
	// Create UI with basic HTML passed via data URI
	ui, err := lorca.New("data:text/html,"+url.PathEscape(`
	<html>
		<head><title>Hello</title></head>
		<body><h1>Hello, world!</h1></body>
	</html>
	`), "", 480, 320)
	if err != nil {
		log.Fatal(err)
	}
	defer ui.Close()
	// Wait until UI window is closed
	<-ui.Done()
}

执行命令:go run .

能看到一个打开的网页,说明引入库成功

gin-gonic/gin

是什么:提供服务器接口的库

地址:https://github.com/gin-gonic/ginopen in new window

下载:go get -u github.com/gin-gonic/gin

demo

package main

import (
	"net/http"

	"github.com/gin-gonic/gin"
)

func main() {
  r := gin.Default()
  r.GET("/ping", func(c *gin.Context) {
    c.JSON(http.StatusOK, gin.H{
      "message": "pong",
    })
  })
  r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}

这样就启动了一个 gin 服务器

gorilla/websocket

是什么:实现 WebSocket 通知

地址:https://github.com/gorilla/websocketopen in new window

skip2/go-qrcode

是什么:生成二维码

地址:https://github.com/skip2/go-qrcodeopen in new window

项目开始

初始化项目

go mod init github.com/johanazhu/go-demo

一般命名为go mod init XXX,XXX 为项目名,如果放 github 上就写 github 地址

Last Updated:
Contributors: johan