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!

相关推荐
武子康18 分钟前
MultiNet6 空闲崩溃:`EXCVADDR=0x8` 后又出现 `CORRUPT HEAP`
人工智能·后端·agent
开开心心_Every32 分钟前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
chenbingjie_c42 分钟前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
吴卫斌1 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
武子康2 小时前
MultiNet7 每轮都 clean,ESP32-P4 内存为什么还在掉?
人工智能·后端·agent
超级架构师2 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core
陈随易2 小时前
AI 运维服务器,安全又可靠的方法
前端·后端·程序员
叼烟扛炮3 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
LMT流氓兔3 小时前
第五单元——第十六课:给书店助手加上网页界面
java·开发语言·jvm·人工智能·oracle·langchain·1024程序员节
专注仿真3 小时前
梯度提升类(XFBoost)算法详解与代码实例
开发语言·人工智能·python·算法·大模型训练·控制算法