golang之panic

2023-11-30
阅读 4 分钟
567
在go语言中,panic是一种用于处理不可恢复错误和异常情况的机制。大多数情况下,我们用panic来快速解决正常运行中出现的异常情况,或者我们没有准备好优雅地处理的错误。

开源后台管理系统 (go-vue-admin)

2023-10-01
阅读 3 分钟
1.7k
go-vue-admingo-vue-admin 是一套基于go语言开源的后台管理系统。功能参考诺依网站 ,前后端分离。简介前端采用vue3、Element Plus 、RuoYi-Vue3后端采用gofrome 框架、mysql、redis、Jwt实现了一键生成前后端代码,高效开发。内置功能用户管理:用户是系统操作者,该功能主要完成系统用户配置。部门管理:配置系统组织...

golang 字符串拼接方法对比

2023-09-04
阅读 3 分钟
761
字符串拼接有以下几种方法:加号+fmt.Sprintfstrings.Joinbytes.Bufferstrings.Builder 此方法为官方推荐新建单元测试文件string_test.go {代码...} 执行 go test string_test.go -benchmem -bench=".*"结果:BenchmarkFmtSprintf-4 2962962 400.6 ns/op 112 B/op 3 allocs/opBenchmarkAdd-4 6629833 207.7 ns/op 64 B/o...

Go 官方依赖注入工具wire

2022-12-16
阅读 5 分钟
2.7k
wire是Go官方推出的一款类似于Spring依赖注入工具。有别于以往的依赖注入工具facebookgo/inject、uber-go/dig等,采用反射实现。wire采用通过代码描述对象之间的依赖关系,然后自动生成代码在编译期实现依赖注入的工具源码:[链接]

Go 泛型

2022-11-24
阅读 4 分钟
1.7k
泛型是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。
封面图

Go切片排序

2022-11-04
阅读 5 分钟
3.3k
sort.Slice是go 1.8版本中引入的一个强大排序函数,有两个参数,第一个参数是带排序any类型的切片,第二个参数是less函数,用于比较大小,less 方法必须满足与接口类型的 Less 方法相同的要求。此排序不能保证是稳定的:相等的元素可能会从它们的原始顺序颠倒过来。对于稳定排序,请使用 SliceStable。示例:

Go语言sync.Map

2022-10-27
阅读 2 分钟
1.8k
Go语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全的。如果想实现并发线程安全有两种方法:map加互斥锁或读写锁标准库sync.map(Go1.19+新特性)sync.map源码[链接]sync.map 实现原理及优化利用map只读不用锁,通过冗余 read 和 dirty 两个字段将读写分离,读的数据存在只读字段 read 上,将最新写...

Go 操作mongodb

2022-10-07
阅读 6 分钟
2.6k
添加mongodb驱动程序用于go get将 Go 驱动程序添加为依赖项。 {代码...} 使用方法创建main.go 文件 {代码...} links[链接]目录上一节:下一节:

Go xml文件处理

2022-03-15
阅读 4 分钟
2.4k
在开发中会常遇到xml数据序列化和反序列化,这里我们介绍go语言处理xml数据。encoding/xml 包实现了一个简单的xml 1.0解析器,可以理解xml名称空间。

go操作elasticsearch示例

2021-10-28
阅读 13 分钟
5.2k
这里我使用elasticsearch官方给的go语言包(go-elasticsearch)go-elasticsearch向前兼容,这意味着客户端支持与更大或同等次要版本的 Elasticsearch 通信。Elasticsearch 语言客户端仅向后兼容默认发行版,不提供任何保证。

Go 操作kafka包sarama

2021-10-16
阅读 6 分钟
10.4k
sarama 是一个纯 Go 客户端库,用于处理 Apache Kafka(0.8 及更高版本)。它包括一个用于轻松生成和使用消息的高级 API,以及一个用于在高级 API 不足时控制线路上的字节的低级 API。在github上stars上比较多(推荐)。

Go之time包用法

2021-09-23
阅读 5 分钟
2.8k
time包提供了时间的显示和测量用的函数。日历的计算采用的是公历。time 类型 {代码...} time可以精确到纳秒示例 {代码...} links[链接]目录上一节:下一节:

go-websocket 分布式IM

2021-05-25
阅读 3 分钟
5.7k
基于golang实现的分布式聊天系统,支持一对一聊天,聊天室等功能。为了测试方便发送消息数据暂未存入数据库,后期会加入数据库,也可自行加入数据库,方便永久存储聊天内容,以及支持消息必达等功能。

Go语言 orm库之gorm

2020-12-02
阅读 6 分钟
3.9k
GORM是一个比较流行且功能齐全的orm库,主要有以下特性全功能 ORM关联 (Has One,Has Many,Belongs To,Many To Many,多态,单表继承)Create,Save,Update,Delete,Find 中钩子方法支持 Preload、Joins 的预加载事务,嵌套事务,Save Point,Rollback To Saved PointContext,预编译模式,DryRun 模式批量插入,Find...

Golang 操作Excel文件

2020-10-23
阅读 3 分钟
13.6k
Excelize是一个用Go语言编写的库,提供了一组允许您写入和读取XLSX / XLSM / XLTM文件的功能。支持读写由Microsoft Excel™2007和更高版本生成的电子表格文档。通过高度兼容性支持复杂的组件,并提供了流式API,用于从工作表中生成或读取包含大量数据的数据。该库需要Go版本1.10或更高版本。可以使用go的内置文档工具查看...

golang之数据验证validator

2020-05-04
阅读 10 分钟
20.1k
前言 在web应用中经常会遇到数据验证问题,普通的验证方法比较繁琐,这里介绍一个使用比较多的包validator。 原理 将验证规则写在struct对字段tag里,再通过反射(reflect)获取struct的tag,实现数据验证。 安装 {代码...} 示例 {代码...} 验证规则 required :必填 email:验证字符串是email格式;例:"email" url:这...

vue-element-admin 后台动态加载菜单

2020-03-03
阅读 5 分钟
12.1k
做后台项目,权限验证与安全性是非常重要的,vue-element-admin官方主要介绍了前端控制用户菜单加载显示,以及权限控制。这就带来一些不便,服务端无法(这里可能说的绝对了,起码实现起来不太友好)控制菜单的动态展示,用户权限跟菜单相互关系的绑定。

golang 开源后台管理系统

2020-01-23
阅读 3 分钟
9.4k
go-admin是一个go语言开发的后台管理系统,该系统以角色为基础的权限管理设计(RBAC),完成了系统管理模块功能的开发(其他示例模块后续加上),采用前后端分离实现方式,服务端基于go开源gin框架,前端开源框架vue-element-admin。使用Swagger 2.0自动生成API文档。

gin集成swagger构建api文档

2019-11-27
阅读 2 分钟
7.1k
官方文档 gin-swagger swagger-doc 具体步骤如下: 安装 swag {代码...} 一般安装比较慢,这里我先安装了go mod 借助[链接] 代理,安装很快。当然,你会科学上网也可以。 安装gin-swagger {代码...} 示例 main.go {代码...} 生成文档 在项目目录执行 {代码...} 这个时候你会发现在项目目录新建了一个docs目录,包含docs....

Golang 跨域

2019-10-31
阅读 8 分钟
16.8k
跨域指的是浏览器不能执行其他网站或域名下的脚本。之所以形成跨域,是因为浏览器的同源策略造成的,是浏览器对javascript程序做的安全限制,现在所有支持JavaScript 的浏览器都会使用这个策略。

Go 三个点(...)用法

2019-10-10
阅读 2 分钟
24.2k
众所周知,Go语言是严格类型语言,而开发的时候又遇到传入参数不定的情况,怎么办? 这里的三个点(...),就给我们编程人员带来很大的灵活性,具体如下 函数可变数量参数 可参考[链接] 示例 {代码...} 需要注意的是,可变参数是函数最右边的参数,普通参数放在左侧,可以0到n个。如 {代码...} 可变函数的参数 s如果使用s...

Go 之 interface接口理解

2019-10-08
阅读 3 分钟
9.9k
go语言并没有面向对象的相关概念,go语言提到的接口和java、c++等语言提到的接口不同,它不会显示的说明实现了接口,没有继承、子类、implements关键词。go语言通过隐性的方式实现了接口功能,相对比较灵活。

GO 依赖管理工具go Modules(官方推荐)

2019-09-30
阅读 5 分钟
18.4k
以前写过一篇关于go管理依赖包工具 dep的文章,当时认为dep将会成为官方依赖工具,现在看来是自己图样图斯内幕破了,正如官方一直提到dep是“official experiment”官方实验项目的那样,随着go modules 在go1.11版推出,go1.12版功能不断改进,再到go1.13版完善优化,正式扶正。预计dep将来也只能定格在“official experime...

layui省市区三级联动插件

2019-09-04
阅读 7 分钟
5.1k
这个是一个layui省市区三级联动插件,近来使用layui后台模板框架开发后台系统,要用到省市县/区三级联动,本想从网上找个现成的轮子,然没有自己想要的需求,就自己造了个。

Golang 下载文件

2019-08-27
阅读 2 分钟
17.3k
这里使用net/http下载文件,可以设置Content-Type(具体参考)告诉客户端返回的内容类型实际上是什么,实现不同方式的文件的下载。 示例一 {代码...} 访问 [链接]:8080/?filename=image.png image.png 为你服务器上文件名称 如想直接显示图片文件或下载文件的话,也可以用http.ServeFile() 示例二 {代码...} links 目录

微信小程序发送模板消息

2019-08-27
阅读 4 分钟
3.2k
微信小程序还提供了给客服发送模板消息的功能,以便商家给客户发送通知。 官方文档 [链接] 使用效果 具体步骤 1、设置模板 登录 [链接]“功能”-“模板消息”-“模板库”这里我们选择合适的模板,点"选用”。回到"我的模板",这里会看到选用的模板,有相应的模板id。 2、发送模板消息 {代码...} {代码...} 3、返回值 返回示例 {...

微信小程序客服消息功能 php

2019-08-10
阅读 4 分钟
4.7k
项目说明: 本项目是一个简单微信小程序客服消息类,实现客服消息相关功能。官方给的php示例有误,这里就不再吐槽了。 本示例是采用开发者服务器,没有采用云调用的形式。 官方文档: 客服消息指南 客服消息服务端 适用场景 客户消息流程图 使用步骤 1、开启客服消息 [链接] 登录-开发-开发设置-消息推送 点击“启动” URL...

导出mysql表结构生成grpc需要的proto文件工具

2019-08-03
阅读 2 分钟
5.4k
使用过grpc的同学都知道,写proto文件比较繁琐,尤其是写message,对应很多字段,为此写了一个简单的从mysql直接读取表结构,生成proto文件的工具。

Golang不同类型比较

2019-07-29
阅读 3 分钟
8.2k
golang 支持两种浮点float32和float64,众所众知,涉及浮点数比较或运算是会遇到精度问题,具体要根据golang实现IEEE 754的情况定。

Go socket实现多语言间通信

2019-06-27
阅读 1 分钟
4.6k
socket提供了在传输层进行网络编程的方法,它比基于http协议的接口传输更高效,RPC(Remote Procedure Call)是远程过程调用,常用于分布式系统等,而rpc很多是基于socket实现的。不了解socket、http等协议请阅读