Windows下Golang初学乍到

安装

没啥说的,官网下载即可,地址:All releases - The Go Programming Language

根据系统类型下载即可!

配置

Windows下安装完后,发现path中已经有了,但为了避免可能的问题,还是建议配置GOPATH的。

开发工具

Java出身,IDEA才是最强大的!

给IDEA装上插件,插上飞翔的翅膀!

了解基本语法

找了个教程,地址:《Go 入门指南》 | Go 技术论坛

说实话,又丑又长,真是难以下咽,看了一部分,还是直接上手来得快!

Web框架

作后端出身的,Web框架是少不了的,经过了解发现 Iris 应该是当下功能最全、最热的Web框架了吧,那就学它!

使用以下命令创建并初始化项目:

bash 复制代码
$ mkdir myapp
$ cd myapp
$ go mod init myapp
$ go get github.com/kataras/iris/v12@latest

报错则需要先执行下面命令:

bash 复制代码
go env -w GOPROXY=https://goproxy.io,direct

go clean --modcache

官方把 import 与 示例代码分开了,需要细心,不然,代码一片飘红!

完整示例代码

Go 复制代码
package main

import "github.com/kataras/iris/v12"

func main() {
	app := iris.New()

	booksAPI := app.Party("/books")
	{
		booksAPI.Use(iris.Compression)

		// GET: http://localhost:8080/books
		booksAPI.Get("/", list)
		// POST: http://localhost:8080/books
		booksAPI.Post("/", create)
	}

	app.Listen(":8080")
}

// Book example.
type Book struct {
	Title string `json:"title"`
}

func list(ctx iris.Context) {
	books := []Book{
		{"Mastering Concurrency in Go"},
		{"Go Design Patterns"},
		{"Black Hat Go"},
	}

	ctx.JSON(books)
	// TIP: negotiate the response between server's prioritizes
	// and client's requirements, instead of ctx.JSON:
	// ctx.Negotiation().JSON().MsgPack().Protobuf()
	// ctx.Negotiate(books)
}

func create(ctx iris.Context) {
	var b Book
	err := ctx.ReadJSON(&b)
	// TIP: use ctx.ReadBody(&b) to bind
	// any type of incoming data instead.
	if err != nil {
		ctx.StopWithProblem(iris.StatusBadRequest, iris.NewProblem().
			Title("Book creation failure").DetailErr(err))
		// TIP: use ctx.StopWithError(code, err) when only
		// plain text responses are expected on errors.
		return
	}

	println("Received Book: " + b.Title)

	ctx.StatusCode(iris.StatusCreated)
}

运行Demo

点击这两个地方都行,也可使用命令行或快捷键,看个人喜好。

成功启动:

访问下试试:

访问地址:http://localhost:8080/books

结果:

The end!

相关推荐
似璟如你几秒前
Java 开发者的 Go 语法基础:从 0 开始快速上手 Go
java·开发语言·后端·golang·go·编程语言
LccKyI14 分钟前
C#学习day05(开发福彩双色球系统附思维导图)
开发语言·学习·c#
zzz_236816 分钟前
TencentDB-Agent-Memory 深度解析:让多个 Agent 共享项目经验的记忆中枢
java·开发语言·jvm·人工智能·agent·memory·tencent db
charlie1145141911 小时前
IMX6ULL WM8960 的移植——前置介绍
开发语言·c++·开源项目·嵌入式linux
Codelinghu1 小时前
AI 写代码越强,程序员越不能只懂代码
后端
迷迭香yy1 小时前
Python实战:涨停板“假封板”识别系统的工程实现
开发语言·人工智能·python
卡卡敲码1 小时前
Skills 撞车了,Agent 怎么选
后端
charlie1145141911 小时前
Cinux是如何管理进程的 —— 上下文与调度
开发语言·c++·操作系统·开源项目
羑悻1 小时前
周一早上三件事砸过来,我以为要延期,结果 AI 替我扛了一半!
后端
文艺理科生1 小时前
3 年,8 种方案,1 次重构:LangChain 记忆方案如何从混乱走向清晰
前端·后端·架构