golang slice

go-carbon v2.2.14 发布,轻量级、语义化、对开发者友好的 Golang 时间处理库

carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库,支持链式调用。 目前已被 awesome-go 收录,如果您觉得不错,请给个 star 吧 github.com/golang-module/carbon gitee.com/golang-module/carbon 安装 ......
轻量 轻量级 语义 开发者 go-carbon

Golang使用kcp

安装 go get -u github.com/xtaci/kcp-go import ( "fmt" "github.com/xtaci/kcp-go" "golang.org/x/net/ipv4" "golang.org/x/net/ipv6" "net" ) // KCP 服务器 func ......
Golang kcp

Golang中如何自定义时间类型进行xml、json的序列化/反序列化

在日常开发工作中,我们进行会遇到将 struct 序列化 json字符串以及将 json字符串 反序列化为 struct 的场景,大家也对此十分熟悉。 最近工作中,遇到了需要将 struct 序列化 xml字符串以及将 xml字符串 反序列化为 struct 的场景,对于普通类型的字段,比如int、 ......
序列 类型 时间 Golang json

Golang学习笔记-定时任务

指定具体时间执行 package main import ( "fmt" "time" ) func main() { // 指定执行时间为 2023-11-29 00:00:00 executionTime := time.Date(2023, time.November, 29, 0, 0, 0 ......
任务 笔记 Golang

golang http请求 tcp连接没有关闭

参考链接 https://studygolang.com/articles/3138 func dialTimeout(network, addr string) (net.Conn, error) { return net.DialTimeout(network, addr, time.Secon ......
golang http tcp

Golang-常见数据结构实现原理

chan 1.chan数据结构 src/runtime/chan.go:hchan定义了channel的数据结构: type hchan struct { qcount uint // 当前队列中剩余元素个数 dataqsiz uint // 环形队列长度,即可以存放的元素个数 buf unsafe ......
数据结构 原理 常见 结构 数据

go数据类型-slice底层

切片的底层数据结构 有上篇string为基础了,能猜到slice肯定也有一个对应的struct。 在runtime的 slice.go中 type slice struct { array unsafe.Pointer len int cap int } 切片的本质是对数组的引用 len 表示当前已 ......
底层 类型 数据 slice

Golang - context.TODO()和context.Background()的区别

context.Background():上下文的默认值(创建上下文的默认起点),这个函数返回一个空context,返回值就是根节点,这只能用于最高等级(在main函数、初始化或顶级请求处理中),因为所有其他的上下文都应该从它衍生(Derived)出来 context.TODO():通常用作占位符或 ......
context Background Golang TODO

打包Golang并在Android环境下运行

实践: 1、 打包Golang并在Android环境下运行-CSDN博客 https://blog.csdn.net/lszy24/article/details/78948130 翻译 搜索 复制 ......
Android 环境 Golang

实现一个简易的golang版本的CompletetableFuture

背景 将入侵4.0 java代码迁移到入侵5.0 golang项目时,有些并行处理的功能用到了java的CompletetableFuture框架,但是golang中好像没有类似的框架(可能我没有找到),所以打算手动写一个简易的golang版本的CompletetableFuture。 在入侵jav ......
CompletetableFuture 简易 版本 golang

Golang GORM 数据库操作

一. 初始化连接 1 package model 2 3 import ( 4 "fmt" 5 6 "gorm.io/driver/mysql" 7 "gorm.io/gorm" 8 ) 9 10 /*** 11 Navicat 数据库可视化工具: https://www.navicat.com/e ......
数据库 数据 Golang GORM

Windows安装Golang

1.到官网下载go安装包,安装 https://go.dev/dl/​# 假设安装在:D:\go 2.删除自动添加的GOPATH # 安装时会自动添加GOPATH变量到用户环境变量,需要删除,如果没有就不用管。 3.新建工作目录 # 假设工作目录定为:D:\code\go_project​在go_p ......
Windows Golang

Golang Gin Session & Cookie

一. Cookie 1 func (con UserControl) Index(c *gin.Context) { 2 /*** 设置Cookie 3 func (c *Context) SetCookie(name, value string, maxAge int, path, domain ......
Session Golang Cookie Gin amp

golang 根据 json path 提取字段值

在Golang中,可以使用github.com/tidwall/gjson包来根据JSON路径提取字段值。 package main import ( "fmt" "github.com/tidwall/gjson" ) func main() { jsonStr := ` { "name": "J ......
字段 golang json path

使用golang写一个导出excel的接口

Crafted by [Genie](https://marketplace.visualstudio.com/items?itemName=genieai.chatgpt-vscode) You 使用golang写一个导出excel的接口 Genie 要创建一个使用Go语言编写的导出Excel文件 ......
接口 golang excel

Golang Gin 中间件

一.中间件 1 package main 2 3 import ( 4 "fmt" 5 "gin01/middlewares" 6 "text/template" 7 "time" 8 9 "github.com/gin-gonic/gin" 10 ) 11 12 /*** 13 中间件的注意事项: ......
中间件 Golang Gin

golang sort包应用

一、sort内置排序函数 函数 作用 func Float64s(x []float64) 对float64类型的切片进行升序排序 func Float64sAreSorted(x []float64) bool 判断float64类型切片x是否按升序排序 func Ints(x []int) 对i ......
golang sort

Golang学习笔记-自定义日志轮转及输出

package pkg import ( "fmt" "log" "log/slog" "os" "time" ) var controlLogger *slog.Logger var fileLogger *slog.Logger const ( timeFormat = "2006-01-02" ......
笔记 Golang 日志

golang常用包详解之: errgroup

前言: 并发编程在现代软件开发中变得越来越重要。Go语言通过goroutine和channel等语言特性为并发编程提供了非常强大的支持,但是在实际开发中,如何有效管理多个goroutine并处理它们可能产生的错误是一个挑战。这时,Go语言的官方库中的errgroup包就能发挥作用。 正文: errg ......
errgroup 常用 golang

Golang Gin 请求参数的获取值 & 路由分组 & 控制器继承

一. 请求参数的获取值 动态路由 1 type User struct { 2 Username string `form:"username" json:"username"` 3 Password string `form:"password" json:"password"` 4 Age in ......
路由 控制器 amp 参数 Golang

golang select

golang select是多 channel 并行的利器 不要拿 switch 和 select 比,根本不是一个东西好嘛,差不少,只是名字稍微有点像 前置操作 golang 对 select 做了一些优化 select 结构体为空 当 select 里面为空的时候会直接 panic 只有一个 c ......
golang select

golang 内存分配

golang的内存分配思想从 tcmalloc 而来,思路是把对象分配成小对象减少锁的力度或无锁增加效率 定义 golang 内部的页(Page)大小为 8B 空间大小 golang 内部把要申请或使用的空间大小分为了三大类:微对象 (<16B),小对象(16B~32KB),大对象(>32KB), ......
内存 golang

golang 原子操作

在 golang 中,有原子包,能够实现原子操作,在我分析和猜想下,感觉解开了谜团 具体用法不说了,网上一大堆什么 cas,add,load,store 等,主要是底层实现 arm 架构 在 amd 架构下,通过汇编指令加锁来实现 代码在src/runtime/internal/atomic/ato ......
原子 golang

Golang Gin 模板基本使用

一, 模板定义,模板变量,条件判断,模板函数,模板命名 1 {{define "default/index.html"}} 2 <!DOCTYPE html> 3 <html lang="en"> 4 5 <head> 6 <meta charset="UTF-8"> 7 <meta name="v ......
模板 Golang Gin

golang开发实践

先处理错误避免嵌套 尽量避免重复 重复的代码想办法用一个函数包起来 type binWriter struct { w io.Writer size int64 err error } // Write writes a value to the provided writer in little ......
golang

golang web开发

Restful风格编程 是一个资源定位、资源操作的风格。 更简洁、更有层次,更易于实现缓存等机制。 golang http标准库 客户端功能 https://www.juhe.cn/ http请求:GET func testGetQueryWeather() { params := url.Valu ......
golang web

Golang Gin 初识

1.Gin框架搭建,初识 1 // main.go 2 package main 3 4 /*** 5 Gin入门: 6 文档: https://gin-gonic.com/zh-cn/docs/quickstart/ 7 热加载: 8 文档: https://github.com/cosmtrek ......
Golang Gin

【golang】【注释模版】

@目录写在前面注释要求package结构体方法代码逻辑注释参考资料基础/标准库/第三方库golang 导航编程规范算法|面试项目 写在前面 相关博文 个人博客首页 免责声明:仅供学习交流使用!开源框架可能存在的风险和相关后果将完全由用户自行承担,本人不承担任何法律责任。 注释要求 统一使用中文注释, ......
注释 模版 golang

Chapter 3.1 复合类型-Arrays,Slices

数组 Arrays 数组在 Go 中很少被直接使用,因为数组的长度被作为类型的一部分被使用 [3]int [5]int 是不同的类型 这个数组和 C 语言的数组很不一样,C 的数组变量就是指向数组的指针,但是 offset 是 0 你不能使用一个变量代表数组的长度,类型不是在运行时确定的,它必须在编 ......
Chapter 类型 Arrays Slices 3.1

golang-引用传递

dbTags := make([]*Tag, 0) for _, value := range idMap { dbTags = append(dbTags, &value) } 针对这种情况传递的是变量的地址 会导致新的数组都是相同的值 解决方式使用中间变量接一下 dbTags := make([ ......
golang