-
使用 gin 包优化登录功能
上一个实战文章我们学习了如何使用 Go 语言原生的 http 包来构建一个 web 应用,实现了一个简单的登录功能。因为原生的 http 包很多功能都需要自己去写,所以就有很多开发者在原生包的基础上开发了第三方包。本文就来介绍一个开发 Go web 十分流行的包—— gin 包。其官方地址为:https://github.com/gin-gonic/gin。 1. 下载 gin 包 因为是第三方包,所以需要从 github 上下载后才可使用。使用以下指令下载使用: 代码块 1 g…
-
使用 Go 语言搭建简易登录功能
在这篇文章之前,已经学完了 Go 语言所有基础特性,对 Go 语言也有了一定掌握和理解。本文就来学习如何使用 Go 语言如何搭建一个 web 服务。这个 web 服务主要提供登录的功能。 1. 搭建服务 在 Go 语言中想要搭建一个 http 服务是非常容易的一件事情,一行代码就可以了。 代码示例: 代码块 1 package main 2 3 import ( 4 "net/http" 5 ) 6 7 func main() { 8 http.…
-
Go 语言性能测试
本文来学习一下如何进行 Go 语言的性能测试。这里需要学习一个 Go 语言官方提供的工具 pprof: runtime/pprof:采集程序(非 Server)的运行数据进行分析; net/http/pprof:采集 HTTP Server 的运行时数据进行分析。 上述两个包的底层实现是一样的,一般建议直接在主函数上加上 http 服务而使用第二个包,毕竟可视化显示易于观察和操作。故本文仅介绍 net/http/pprof 的用法。 1. pprof 使用方法 直接在程序入口,也就…
-
Go 语言中的反射
反射是在 java 出现后迅速流行起来的一种概念,通过反射可以获取丰富的类型信息,并可以利用这些类型信息做非常灵活的工作。大多数现代的高级语言都以各种形式支持反射功能,反射是把双刃剑,功能强大但代码可读性并不理想,若非必要并不推荐使用反射。本文就来介绍一下反射在 Go 语言中的基本使用方法。 1. 通过反射获取类型 在 Go 语言中提供反射的包为 reflect 包,其中reflect.Type()函数可以获取一个变量的类型。 代码示例: 代码块 1 package main 2…
-
Go 语言中的变参
在开发过程中,很有可能会遇到不确定传入参数数量的问题。比如答题系统开发时,可能会遇到多选题,这里面就无法确定传入参数的数量。此时就需要一个变参传递的方案,在 Go 语言中,使用...来接收或者传递变。 1. 使用…来接收变参 在函数的参数类型前加上...就可以用于接收不定长度的该类型的变参,如果连类型也无法确定,则使用...interface{}。变参类型的参数在使用时是一个变参类型的切片。 代码示例: 代码块 1 package main 2 3 import "fmt" 4…
-
Go strings 系统包的使用说明
前文我们有学习了 string 变量,发现 Go 语言并没有向面向对象语言那样,类型中自带方法来处理对象的值。Go语言中也有类似的操作,其操作全都在 strings 系统包中实现了。本文主要来讲解一下如何使用 strings 系统包比较常用的字符串操作。 1. 获取字符串长度 在往数据库中写入数据的时候,数据库字段通常都会有长度限制,所以在写入之前最好事先判断一下字符串的长度是否符合自己的设计。 代码示例: 代码块 1 package main 2 3 import ( 4 …
-
Go 语言中的系统包
之前已经学习了 Go 语言中的文件操作,同时Go语言用有很多其它的系统包,功能非常丰富。本文就来简单介绍几个 Go 语言中常用的系统包。 1. fmt 在 Go 语言中使用的最多的包没有之一,用于各种输出,甚至于组装字符串,其中的 fmt.Println() 和fmt.Print() 是 Go 开发者们用的最多的函数。 2. io io 包中主要是对 os 接口的封装,使其变得更加精简,功能更丰富。 3. bufio bufio 包主要是对 io 包进行…
-
Go 语言的文件操作
本文主要介绍 Go 语言中对文件系统的操作,Go 语言内置库中提供了丰富的文件操作函数,所以本文主要介绍使用Go 语言中的内置包——“os” 来实现文件操作。 1. 文件创建/打开 若你想创建/打开一个文件,则可以使用 代码块 1 func OpenFile(name string, flag int, perm uint32) (file *File, err Error) 参数解释: name:就是文件名,若文件不在执行程序目录下,则可以使用文件的相对路径或者绝对路径。 fl…
-
Go 语言 go mod 包依赖管理工具
前文了解了 Go 语言中的包来复用代码,一直以来 Go 语言的包管理都是饱受开发者诟病的一个软肋,直到官方推出了 go mod。这个强大的包管理工具使得我们彻底告别了 Go 语言繁琐的包管理。本文就来介绍以下如何使用 go mod 来进行包管理。 Tips:只有在Go11.1之后的版本有这个工具,在Go语言13.0以后该工具趋于完善。本文的Go版本为13.5,建议使用最新版本的Go语言环境。 1. 指令介绍 在控制台中输入go mod指令,会出来这个工具的帮助命令。 指令解析如下表…
-
Go 语言中的包
在 Go 语言的错误处理中我们提到了 errors 包,当时没有详细的介绍。本文就来详细的介绍一下 Go 语言中包相关的概念。 和大部分语言一致,Go 语言也是支持调用其它文件中的 Go 代码的。Go 语言是现这一功能则是通过包来实现的。而实现包的功能则是通过关键字 package 来实现的,使用 package 来声明代码所在的包。 1. 基本概念 Go 语言中一般使用文件所在的文件名来命名自己的包名,这样层次清晰便于管理。其中包名定义的注意事项如下: 包名一般都是全小写; 包名…