简介 今天我们介绍一个比较好玩的库govaluate。govaluate与 JavaScript 中的eval功能类似,用于计算任意表达式的值。此类功能函数在 JavaScript/Python 等动态语言中比较常见。govaluate让 Go 这个编译型语言也有了这个能力! 快速使用 先安装: $
简介 在很早之前的文章中,我们介绍过 Go 标准日志库log和结构化的日志库logrus。在热点函数中记录日志对日志库的执行性能有较高的要求,不能影响正常逻辑的执行时间。uber开源的日志库zap,对性能和内存分配做了极致的优化。 快速使用 先安装: $ go get go.uber.org/zap
简介 在 Go 语言中编写数据库操作代码真的非常痛苦!database/sql标准库提供的都是比较底层的接口。我们需要编写大量重复的代码。大量的模板代码不仅写起来烦,而且还容易出错。有时候字段类型修改了一下,可能就需要改动很多地方;添加了一个新字段,之前使用select *查询语句的地方都要修改。如
简介 cli是一个用于构建命令行程序的库。我们之前也介绍过一个用于构建命令行程序的库cobra。在功能上来说两者差不多,cobra的优势是提供了一个脚手架,方便开发。cli非常简洁,所有的初始化操作就是创建一个cli.App结构的对象。通过为对象的字段赋值来添加相应的功能。 cli与我们上一篇文章介
简介 cron一个用于管理定时任务的库,用 Go 实现 Linux 中crontab这个命令的效果。之前我们也介绍过一个类似的 Go 库——gron。gron代码小巧,用于学习是比较好的。但是它功能相对简单些,并且已经不维护了。如果有定时任务需求,还是建议使用cron。 快速使用 文本代码使用 Go
简介 JSON 是一种非常流行的数据交换格式。每种编程语言都有很多操作 JSON 的库,标准库、第三方库都有。Go 语言中标准库内置了 JSON 操作库encoding/json。我们之前也介绍过专门用于查询 JSON 串的库gjson和专门用于修改 JSON 串的库sjson,还有一个非常方便的操
简介 有时,我们会遇到一些需要使用字符串的匹配和查找的任务。并且我们知道这种情况下,使用正则表达式是最简洁和优雅的。为了完成某个任务特地去系统地学习正则表达式费时费力,而且一段时间不用又很容易遗忘。下次遇到问题还要再重复这个过程。commonregex库来了,它内置很多常用的正则表达式,开箱即用。当
简介 最近在整理我们项目代码的时候,发现有很多活动的代码在结构和提供的功能上都非常相似。为了方便今后的开发,我花了一点时间编写了一个生成代码框架的工具,最大程度地降低重复劳动。代码本身并不复杂,且与项目代码关联性较大,这里就不展开介绍了。在这个过程中,我发现 Go 标准的模板库text/templa
简介 最近在整理我们项目代码的时候,发现有很多活动的代码在结构和提供的功能上都非常相似。为了方便今后的开发,我花了一点时间编写了一个生成代码框架的工具,最大程度地降低重复劳动。代码本身并不复杂,且与项目代码关联性较大,这里就不展开介绍了。在这个过程中,我发现 Go 标准的模板库text/templa
简介 不管什么时候,处理时间总是让人头疼的一件事情。因为时间格式太多样化了,再加上时区,夏令时,闰秒这些细枝末节处理起来更是困难。所以在程序中,涉及时间的处理我们一般借助于标准库或第三方提供的时间库。今天要介绍的dateparse专注于一个很小的时间处理领域——解析日期时间格式的字符串。 快速使用
本文全面深入地探讨了Go非类型安全指针,特别是在Go语言环境下的应用。从基本概念、使用场景,到潜在风险和挑战,文章提供了一系列具体的代码示例和最佳实践。目的是帮助读者在保证代码安全和效率的同时,更加精通非类型安全指针的使用。 关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度
1. MinIO 简介 MinIO 是一个基于 Go 实现的高性能、兼容 S3 协议的对象存储。它采用 GNU AGPL v3 开源协议,项目地址是 github.com/minio/minio,官网是 min.io。 它适合存储海量的非结构化的数据,例如说图片、音频、视频等常见文件,备份数据、容
[gomacro](https://github.com/cosmos72/gomacro) 是一个近乎完整的 Go 解释器,用纯 Go 实现,它同时提供交互式 REPL 和脚本模式,并且在运行时不需要 Go 工具链(除了一些非常特殊的场景:在运行时导入第三方包)。它在 Go 标准库之外有两个依赖项
此套Gin仿小米商城实战发布于2023年,由IT营大地老师录制,教程太好了,全程都是干货,跟着老师一点点的学习,很容易理解,每个视频都有源码和文档,不用担心视频跟不上的问题,看完视频,在看着文档,多敲几次代码,加深理解。 Go即Golang,是Google公司2009年11月正式对外公开的一门编程语
在许多时候我们开发的应用程序可能依赖一些资源文件,例如图片、静态网页等等,但是我们只想编译完成后得到一个单独的可执行文件应当怎么做呢?内嵌资源到可执行文件中就是一个很好地选择,事实上无论是C/C++还是C#都提供了内嵌资源的特性,当然Go也不例外。 Go语言本身自带的标准库embed就可以实现将资源
Go 语言是谷歌推出的一种全新的编程语言,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、语言设计良好、执行性能好”等优势,目前国内诸多IT 公司均己采用 Go 语言开发项目。 今天给Go语言爱好者分享一份 《Go语言入门经典》 ,共278页24章,详细讲解了Go 语言的几
之前对 Golang 的包管理机制没有很清晰的认识,今天来详细分析一下,其实 Golang 的包管理方式分为以下两种: go mod 包管理方式:项目可以放到任意位置,目录下需要有 go.mod 文件。 gopath 包管理方式:必须将项目放在 $GOPATH/src 下。 下面我们从 GO11
错误:/root/go/pkg/mod/golang.org/x/crypto@v0.14.0/ssh/kex.go:19:2: //go:build comment without // +build comment 在 Go 1.17 版本中,引入了新的构建标签语法 //go:build。然而,
Go流程控制与快乐路径原则 [TOC] 一、流程控制基本介绍 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”。 那么 Go 语言对分支与循环两种控制结构的支持是怎么样的呢?针对程序的分支结构,Go 提供了 if 和 switch-case 两种语句形式;我
本系列文章写于 2014 年,相较于 golang 极短的发展历程,这已经是古董级别的一篇文章了,但 web 框架思想概念依然有效。希望通过翻译这个系列文章,能让大家都现有 Go Web 框架有更深的认识。 本文是 "构建属于自己的 Web 框架" 系列文章中的第四篇,将介绍如何在 Go 中使用三