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 ......
数据结构 原理 常见 结构 数据

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

golang-引用传递

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

Golang VScode 开发环境搭建

写在前面 工作遇到简单整理 理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》 安装插件下载 安装选择合适的版本 htt ......
环境 Golang VScode

golang环境和第三方爬虫包下载安装一把成

复制代码在CentOS7.6中命令行中全部粘贴执行,golang环境和第三方爬虫包全部安装一把成。 wget https://golang.google.cn/dl/go1.21.4.linux-amd64.tar.gz tar -zxvf go1.21.4.linux-amd64.tar.gz - ......
爬虫 第三方 环境 golang

[转]Golang线程池实现百万级高并发

转,原文: https://lk668.github.io/2021/03/22/2021-03-22-Golang%E7%BA%BF%E7%A8%8B%E6%B1%A0%E5%AE%9E%E7%8E%B0%E7%99%BE%E4%B8%87%E7%BA%A7%E9%AB%98%E5%B9%B6%E ......
线程 Golang

[转]手把手教你如何用golang实现一个timewheel时间轮

转,原文:https://lk668.github.io/2021/04/05/2021-04-05-%E6%89%8B%E6%8A%8A%E6%89%8B%E6%95%99%E4%BD%A0%E5%A6%82%E4%BD%95%E7%94%A8golang%E5%AE%9E%E7%8E%B0%E4 ......
timewheel 时间 golang

Golang Redis && Socket

一丶Redis 1 package redis_test 2 3 import ( 4 "fmt" 5 6 "github.com/gomodule/redigo/redis" 7 ) 8 9 // 安装 10 // go get github.com/gomodule/redigo/redis 1 ......
amp Golang Socket Redis

Centos7.8 go1.18.3指定版本安装 完美运行Golang安装

安装背景说明:公司已经有3台服务器安装了go1.18.3版本,这次又买了一台新服务器,由于线上推上去的功能,可能会导致用户出现异常,要做压力测试,所以要重建go环境。 遇到问题:昨天下午自己下载了安装包,也是go1.18.3 解析到了/usr/local 目录 也配置了环境 /etc/profile ......
Centos7 版本 Centos Golang 18.3