Go
MELF晓宇
95后不知名小厂程序员,
非著名纪实摄影师,
坐标西安,
希望与大家一起交流、交友、学习、成长、进步、收获!
展开
-
Qmgo使用教程及常用用法整理
Qmgo常用语法整理原创 2023-01-15 15:42:24 · 2452 阅读 · 0 评论 -
go-excel文档
Go Excel数据读写的简易封装原创 2022-10-24 09:20:29 · 842 阅读 · 0 评论 -
Go 文件读写
Go文件读写的三种方式原创 2022-10-24 09:08:59 · 323 阅读 · 0 评论 -
Go time相关操作
Go 语言Time相关操作原创 2022-10-10 09:46:45 · 175 阅读 · 0 评论 -
Go语言RSA加密算法的常用api整理(go-rsa文档)
go-rsa,rsa公私钥生成、公私钥保存、证书生成、pfx证书读取、加密解密、sha1withrsa签名验签原创 2022-06-07 19:30:24 · 524 阅读 · 0 评论 -
Golang MQTT使用教程
github.com/eclipse/paho.mqtt.golang简明教程原创 2022-05-23 18:03:52 · 2389 阅读 · 0 评论 -
Go语言的sm2加密算法封装
随机生成公私钥// CreateSM2Key/** * @Description: 随机生成公私钥 * @return privateKey * @return publicKey * @return err */func CreateSM2Key()(privateKey *sm2.PrivateKey,publicKey *sm2.PublicKey,err error) { // 生成sm2秘钥对 privateKey, err = sm2.GenerateKey(ran原创 2022-05-10 10:36:28 · 3578 阅读 · 0 评论 -
银联联机UTVTSM4MAC算法的Go语言实现
银联联机UTVTSM4MAC算法的Go语言实现原创 2022-05-09 18:43:36 · 481 阅读 · 0 评论 -
Go TCP实现及状态监控
Go TCP实现及状态监控原创 2022-04-29 12:31:54 · 1470 阅读 · 0 评论 -
Golang树形结构(实现菜单树)
Golang实现菜单树转载 2022-04-13 18:02:42 · 4412 阅读 · 0 评论 -
Go随机数的简单实现
为了保证每次可以生成不一样的随机数,需要设置随机种子var ( // 设置随机种子 r = rand.New(rand.NewSource(time.Now().Unix())))生成指定范围内的整数// RandInt/** * @Description: 随机整数 * @param start * @param end * @return v */func RandInt(min, max int) (v int) { return r.Intn(max-min)原创 2022-03-29 09:19:11 · 427 阅读 · 0 评论 -
Go操作中文字符串
因为Go中字符串是以[]byte形式存储的,而Unicode字符中一个地方对应多个字节,所以不能直接进行便利,需要先将其转化为[]rune再进行操作package chinesevar Chinese = new(chinese)type chinese struct{}// Len/** * @Description: 获取中文字符串长度 * @receiver c * @param str * @return int */func (c chinese) Len(st原创 2022-03-21 14:39:14 · 886 阅读 · 0 评论 -
Centos使用Nginx部署Go前后端分离项目
Centos使用Nginx部署Go前后端分离项目(Gin + Vue)原创 2022-03-15 22:42:28 · 648 阅读 · 0 评论 -
Go发送Get / Post请求到服务器(Params、application/json、application/x-www-form-urlencoded、multipart/form-data)
因为近期遇到了需要请求第三方接口的功能需求,故将常见的请求方式统一封装整理。一般来说,我们使用GET请求从服务器获取数据,当都需要对服务器数据进行变更是,则需要使用POST请求Get请求普通GET请求// Get/** * @Description: 标准的get请求 * @receiver h * @param urlPath http接口地址 * @return data * @return err */func (g *GetRequest) Get(urlPath strin原创 2022-03-05 11:53:31 · 1837 阅读 · 0 评论 -
Go语言常见类型转换(int、int32,int64,float32、float64与string类型互转)
Go语言常见类型转换(int、int32,int64,float32、float64与string类型互转)原创 2022-03-03 23:20:48 · 8604 阅读 · 0 评论 -
Casbin实现RBAC
Casbin框架Casbin是一个强大的、高效的开源访问控制框架,其权限管理机制支持多种访问控制模型。官网:https://casbin.org/docs/zh-CN/rbac-with-domains-api中文文档:https://casbin.org/docs/zh-CN/overviewRBAC API:https://casbin.org/docs/zh-CN/rbac-api域内基于角色的访问控制 API:https://casbin.org/docs/zh-CN/rbac-with-原创 2021-12-15 14:15:02 · 1383 阅读 · 0 评论 -
Golang开发工程师面试题整理
Go语言Go语言中数组和切片的区别是什么?它们可以相互转化吗?切片是指针类型,数组是值类型;数组的长度是固定的,而切片不是(切片可以看成动态的数组);切片比数组多一个容量(cap)属性;切片的底层是数组。相互转化因切片和数组的类型不同,不能彼此直接赋值。可以使用[:]方式将数组转换成切片。// 初始化一个数组a0 := [2]int{1, 2}// 初始化一个切片s1 := make([]int, 5, 5)fmt.Println(a0)fmt.Println(s1)/原创 2021-11-26 12:14:29 · 1333 阅读 · 0 评论 -
gin-start,实现一个通用的Gin项目模板
Gin 是一个用 Go (Golang) 编写的 web 框架,是性能和高效的追求者的不二选择。随着开发的项目逐渐增多,现将一些经验整理出来,制作一个Gin项目的通用模板,欢迎大家一起学习讨论。Github地址:https://github.com/melf-xyzh/gin-startGitee地址:https://gitee.com/melf-xyzh/gin-start创建项目1、在Goland中新建一个go项目,在环境输入框中配置代理:https://goproxy.cn/Hel原创 2021-11-10 10:47:46 · 1390 阅读 · 0 评论 -
Gin + gRPC双向流模式 + sse实现grpc客户端到前端界面的消息推送
Gin + gRPC + sse实现grpc客户端到前端界面的消息推送功能需求工厂客户端与服务端通过gRPC连接突破工厂防火墙(不需要额外开启端口)前端可以控制数据推送的开启和停止前端数据大屏显示(实时数据)实现定义gskmes3.protosyntax = "proto3"; // 语法使用 protocol buffer proto3// 包名: gskmes3package gskmes3;option go_package = "./gskmes3";/* 服原创 2021-09-02 15:49:26 · 2921 阅读 · 0 评论 -
Gorm踩坑指南
主外键定义user表type User struct { gorm.Model Name string Sex int8 `gorm:"default:0"` Account string `gorm:"not null;"` Password string `gorm:"not null"` LastLoginAt time.Time `gorm:"default:null"` Phone string原创 2021-08-24 18:20:47 · 1097 阅读 · 0 评论 -
Go语言学习笔记——指针(七)
Go语言支持指针,使其在调用函数时修改变量时不必进行值拷贝。Go语言中指针是安全指针,不支持偏移和运算。声明var 指针变量名 *指向变量的数据类型例:// 声明一个整型变量var a int = 20// 声明一个整型指针var ip *int // 为指针赋值ip = &a fmt.Printf("a 变量的地址是: %x\n", &a)fmt.Printf("ip 变量储存的指针地址: %x\n", ip)fmt.Printf("*ip 变量的原创 2021-08-07 14:21:02 · 184 阅读 · 0 评论 -
Go语言学习笔记——结构体与面向对象编程(六)
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体中的类型可以是任意的结构体的存储空间是连续的结构体用来表达一个事物的全部或部分属性可以使用结构体实现面向对象定义type 类型名 struct { 字段名1 字段1的数据类型 字段名2 字段2的数据类型 ...}定义一个Person的结构体type Person struct { name string sex int8 age int8}相同数据类型也可以写同一行type pers原创 2021-08-07 13:53:36 · 199 阅读 · 0 评论 -
Go语言学习笔记——字典(五)
Map 是一种基于key-value的无序的键值对的集合。Map是引用类型,必须初始化才能使用。Map使用hash实现,所以它是无序的。map的操作不是原子的,Map不是并非安全的,并发安全的Map可以使用sync标准包中的map。声明使用map关键字定义:var map变量名 map[键的数据类型]值的数据类型如果不初始化 map,那么就会创建一个 nil map。nil map 不能用来存放键值对使用内建函数make()定义:make(map[键的数据类型]值的数据类型, [原创 2021-08-07 10:52:50 · 259 阅读 · 0 评论 -
Go语言学习笔记——数组与切片(四)
数组(定长数组)同一数据类型的固定长度的序列。声明var 数组名 [数组长度]元素数据类型数组长度必须是常量,且是类型的组成部分。数组定义后长度不能变。数组的类型为[数组长度]元素数据类型,长度也是数组类型的一部分。数组赋值为值拷贝。初始化一维数组声明一个有5个整型变量的数组,默认值都是0var arr0 [5]int[0 0 0 0 0]声明一个有5个整型变量的数组,对前几个元素赋值,未赋值的元素为0//全局变量var arr1 [5]int = [5]int{1原创 2021-08-06 13:03:24 · 268 阅读 · 0 评论 -
Go语言学习笔记——字符串(三)
字符ASCII码字符(uint8型 或 byte型)定义var b byte = '1'输出数字大小:fmt.Printf("%v", b)49对应字符:fmt.Printf("%c", b)1UTF-8字符(rune型 或 int32型)定义var r rune = '好'输出数字大小:fmt.Printf("%v", r)22909对应字符:fmt.Printf("%c", r)好字符串定义s := "这是一条用来测试的字符串"原创 2021-08-05 18:05:37 · 359 阅读 · 0 评论 -
Go语言学习笔记——变量与常量(二)
变量声明格式var 变量名 变量类型变量声明并指定初始值var 变量名 类型 = 表达式标准声明变量声明以关键字var开头,变量类型放在变量的后面,行尾无需分号。var name stringvar age intvar isOk bool变量声明并赋值var name string = "ZhangSan"var age int = 20var isOk bool = false批量声明全局变量因式分解关键字(批量声明)的写法一般用于声明全局变量。var (原创 2021-08-05 14:59:01 · 423 阅读 · 0 评论 -
Go语言学习笔记——数据类型(一)
Go语言学习值类型值类型变量直接指向存在内存中的值。值类型的变量的值存储在栈中。值赋值给另一个变量时拷贝原变量对应的值,即深拷贝。布尔型booltruefalse整型intint32 或 64 位int8有符号 8 位整型 (-128 到 127)int16有符号 16 位整型 (-32768 到 32767)int32(rune)有符号 32 位整型 (-2147483648 到 2147483647)in.原创 2021-08-05 14:57:21 · 344 阅读 · 0 评论 -
Go语言学习笔记(持续更新)
Go语言的诞生背景为了解决当下编程语言对并发支持并不友好、编译速度慢、编程复杂这三个问题。Go(Golang)= C + Python网站汇总官网(镜像):https://golang.google.cn/Go语言中文网:https://studygolang.com/Go语言入门教程:http://c.biancheng.net/golang/GoLang教程_Go语言教程:https://www.bilibili.com/video/BV14T4y1g7h9?p=1Go语言教程|菜鸟教原创 2021-01-04 19:59:56 · 407 阅读 · 0 评论