随笔分类 - GoLang
有关于Go语言的相关学习与日常总结
摘要:Go 1.0[1] - 2012 年 3 月: 随着 Go 第一个版本发布的还有一份兼容性说明文档[2] 。该文档承诺,Go 的未来版本会尽可能确保向后兼容性,不会破坏现有程序。 For instance, code that runs under Go 1.2 should be compatib
阅读全文
摘要:1. 有一堆数字,如果除了一个数字以外,其他数字都出现了两次,那么如何找到出现一次的数字? nums := []int{1, 5, 1, 6, 5, 3, 6} i := 0 for _, v := range nums { i ^= v } fmt.Print(i) 重点是异或的使用
阅读全文
摘要:汇总golang日常开发中常用的库包 [web] gin: github.com/gin-gonic/gin [MySQL] gorm: [Redis] go-redis: github.com/go-redis/redis/v8 更好的并发包: https://github.com/sourceg
阅读全文
摘要:在编程中,我们经常会遭遇八小时时间差问题。这是由时区差异引起的,为了能更好地解决它们,我们需要理解几个时间定义标准。 GMT(Greenwich Mean Time),格林威治平时。GMT 根据地球的自转和公转来计算时间,它规定太阳每天经过位于英国伦敦郊区的皇家格林威治天文台的时间为中午12点。GM
阅读全文
摘要:Redis 是一个基于内存的非关系型数据库,在项目开发中使用非常广泛,Go 语言操作 Redis 需要使用三方包,我们选择支持 Redis 集群和 Redis 哨兵的 go-redis 包来讲述 Go 语言如何操作 Redis。 go-redis 包需要使用支持 Modules 的 Go 版本,并且
阅读全文
摘要:什么是 JSON Web Token? JSON Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于在各方之间以 JSON 方式安全地传输信息。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用** HMAC 算法)或使用 RSA
阅读全文
摘要:gin是目前golang的主要web框架之一,之所以选择这个框架是因为其拥有高效的路由性能,并且有人长期维护,目前github上的star数已经破3W。 [安装] go get -u github.com/gin-gonic/gin 基础使用: package main import ( "gith
阅读全文
摘要:在强类型语言中,JSON 通常很难处理 —— JSON 类型有字符串、数字、字典和数组。如果你使用的语言是 javascript、python、ruby 或 PHP,那么 JSON 有一个很大的好处就是在解析和编码数据时你不需要考虑类型。 // in PHP$object = json_decode
阅读全文
摘要:汇总一些Golang一些开源项目,平常可以多学习一下源码与项目精髓 pocketbase 集成简单, 开箱即用,拥有简介的后台管理面板 该系统内置试试数据库与rest api, Google,github等多个平台呕吐和验证功能, 文件存储在本地和第三方平台,灵活性,扩展性强 Gin-vue-adm
阅读全文
摘要:快速安装 使用之前,我们先要获取validator这个库。 # 第一次安装使用如下命令 go get github.com/go-playground/validator/v10 # 项目中引入包 import "github.com/go-playground/validator/v10" 简单示
阅读全文
摘要:介绍 Go 语言可以使用内置命令行工具 go build 编译生成可执行文件。自 Go1.5 版本开始实现自举后,交叉编译也很方便,只需使用 GOOS、GOARCH 环境变量指定目标平台和架构。 部署 Go 项目,只需运行可执行文件,一般有三种方式,分别是使用 nohup 命令、使用 supervi
阅读全文
摘要:Swagger 相关的工具集会根据 OpenAPI 规范去生成各式各类的与接口相关联的内容,常见的流程是编写注解 =》调用生成库-》生成标准描述文件 =》生成/导入到对应的 Swagger 工具。 github: swaggo/swag 一般步骤: 1.按照swagger要求给接口代码添加声明式注释
阅读全文
摘要:01 介绍 Go 提供一个名为go的命令,该命令可自动下载、构建、安装和测试 Go 包和命令。 Go 提供go命令,官方的目的是为了不需要编写 Makefile,而是能够仅使用 Go 源代码本身中的信息来构建 Go 代码。 但是,我们在 Go 项目中也不需要完全摒弃使用 make 和 Makefil
阅读全文
摘要:NSQ 是实时的分布式消息处理平台,其设计的目的是用来大规模地处理每天数以十亿计级别的消息。 NSQ 具有分布式和去中心化拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征。 NSQ 非常容易配置和部署,且具有最大的灵活性,支持众多消息协议。另外,官方还提供了拆箱即用
阅读全文
摘要:Fresh 是一个命令行工具,每次保存Go或模版文件时,该工具都会生成或重新启动Web应用程序。Fresh将监视文件事件,并且每次创建/修改/删除文件时,Fresh都会生成并重新启动应用程序。如果go build返回错误,它会将记录在tmp文件夹中。 [安装] go get github.com/p
阅读全文
摘要:安装go之后, 1.设置环境变量 GOROOT,GOPATH 2.goland配置 配置GOPATH GO Modules GOPROXY=https://goproxy.io,direct 设置自动代码格式化与代码检查: 点击 settings > Tools > File Watchers 新增
阅读全文
摘要:01 介绍 我们使用 Golang 语言开发的项目,怎么保证逻辑正确和性能要求呢?也就是说我们如何测试我们的 Golang 代码呢?在 Golang 语言中,可以使用标准库 testing 包编写单元测试和基准测试,使用 go test 命令执行单元测试和基准测试的代码。本文我们介绍在 Golang
阅读全文
摘要:官网:ini.unknwon.io/docs github:https://github.com/go-ini/ini ini 是 Windows 上常用的配置文件格式。MySQL 的 Windows 版就是使用 ini 格式存储配置的。 go-ini是 Go 语言中用于操作 ini 文件的第三方库
阅读全文
摘要:当我们希望通过命令行启动Golang程序,获取输入的各种形式参数时,该如何处理呢? [os.Args] os.Args是一个string的切片,用来存储所有的命令行参数,包括go run main.go这部分,整体编译后实际是生成和运行的main.exe文件,所以第一个参数是main.exe。示例如
阅读全文