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!

相关推荐
摸鱼的春哥1 分钟前
【编程】是什么编程思想,让老板对小伙怒飙英文?Are you OK?
前端·javascript·后端
嵌入式-老费11 分钟前
Easyx图形库应用(用lua开发图形界面)
开发语言·lua
ellis197012 分钟前
Lua协程coroutine库用法
开发语言·lua
nwsuaf_huasir32 分钟前
matlab构造带通巴特沃斯滤波器进行滤波
开发语言·matlab
救救孩子把33 分钟前
从 JDK 8 到 JDK 23:HotSpot 垃圾回收器全景演进与深度剖析
java·开发语言·jvm·jdk
Max81242 分钟前
Agno Agent 服务端文件上传处理机制
后端
调试人生的显微镜1 小时前
苹果 App 怎么上架?从开发到发布的完整流程与使用 开心上架 跨平台上传
后端
清辞8531 小时前
C++入门(底层知识C与C++的不同)
开发语言·c++·算法
fqbqrr1 小时前
2510C++,api设计原则,不除零
开发语言·c++
顾漂亮1 小时前
Spring AOP 实战案例+避坑指南
java·后端·spring