retry-go retry 113 go

go语言妙用

1、利用channel关闭,实现Context.Done() 这个Context.Done()的具体实现,需要看源码: 原理是: 当contxt用完被销毁后,就会关掉这个返回的匿名chan struct{},这样Done()本身读这个channel就会返回err,即有返回值,也就满足了这个case。 ......
妙用 语言

【spring-retry】Spring 提供的循环重试功能包

1 前言 今天看科技类的文章发现一个新的包,还是Spring提供的,用于失败重试的,我们这节来简单看看哈。 2 spring-retry 使用 2.1 依赖引入 <dependency> <groupId>org.springframework.retry</groupId> <artifactId ......
spring-retry 功能 spring Spring retry

【备忘录设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 备忘录模式(Memento Pattern)是一种结构型设计模式。这种模式就是在不破坏封装的条件下,将一个对象的状态捕捉(Capture)住,并放在外部存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。备忘录模式常常与命令模式和迭代子模式一同使用。 备忘录模式的角色有三个:备忘 ......
设计模式 备忘录 语言 模式 Python

go 中break ,continue , goto, return 使用

// break可以结束当前最近的循环,不会阻碍后面的输出,如果想结束外层的循环,可以使用标签, for i := 1; i <= 5; i++ { for j := 2; j <= 4; j++ { fmt.Printf("i: %v,j: %v \n",i,j) if (i == 2 && j ......
continue return break goto go

go语言sync.Once

go语言sync.Once go语言sync.Once 数据结构 为什么done放在第一个字段 Do 总结 sync.Once 是 Go 标准库提供的使函数只执行一次的实现,常应用于单例模式,例如初始化配置、保持数据库连接等。作用与 init 函数类似,但有区别。 init 函数是当所在的 pack ......
语言 sync Once

"go修养之路" 总结

I/O操作 所有对流的操作都称之为I/O操作 当流没有数据read时或者流已经满了无法在write时,会出现阻塞现象 阻塞场景:一段流中wirte端写入数据时,read端读取。wirte端无数据时read端会阻塞等待直到有数据,但是在多个wirte端同时写入时会互斥也是说同一时刻read端只能处理一 ......
quot 修养 go

go项目中数据库连接,以及redis连接

文件:common/mysql.go 数据库连接文件 package common import ( "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/schema" "log" ) var DB *gorm.DB //全局定义DB var db ......
数据库 项目 数据 redis

【中介者设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

* 中介者模式是一种行为型设计模式,它可以用来减少类之间的直接依赖关系, * 将对象之间的通信封装到一个中介者对象中,从而使得各个对象之间的关系更加松散。 * 在中介者模式中,对象之间不再直接相互交互,而是通过中介者来中转消息。 ......
中介者 设计模式 中介 语言 模式

dlv分析GO高CPU应用

delve是golang推荐的go语言调试工具。 构造100% CPU应用 package main import ( "time" ) func add() { i := 0 for { i++ } } func main() { go add() time.Sleep(time.Hour) } ......
dlv CPU

go语言sync.WaitGroup

go语言sync.WaitGroup WaitGroup的主要作用是,让一个或多个goroutine去等待另一组goroutine结束 数据结构 waitGroup的数据结构有过改动,具体是哪个版本改的没有去找 1.13版本的结构 type WaitGroup struct { noCopy noC ......
WaitGroup 语言 sync

go【goroutine】

1. goroutine 1. 重点 1.要搞清楚goroutine什么时候退出2. 控制goroutine退出3. 把并发给调用者 2. 代码示例 package main import ( "context" "fmt" "time" ) //1. 使用chan创建 //2 run函数消费cha ......
goroutine

go语言中如何把数字转换成字节切片并在网络中传输

客户端: 先把数字转换成uint32类型: var pkgLen = uint32(len(data)) 再定义一个字节切片: var buf = make([]byte, 4) 最后通过encoding.binary包中的方法,把无符号数字装载到字节切片中: binary.BigEndian.Pu ......
字节 语言 数字 网络

在Go语言中,如何优化内存使用效率?

在 Go 语言中,可以通过以下几种方式来优化内存使用效率: 避免使用过多的内存尽可能地避免使用过多的内存是最有效的内存优化方法之一。在编写代码时,应该尽可能地避免使用全局变量和大量的临时变量。同时,可以使用常量、静态变量和缓存等方式来避免频繁地分配和释放内存。 及时释放不需要的内存在 Go 语言中, ......
效率 内存 语言

如何避免在Go语言中出现内存泄漏的情况?

在 Go 语言中,内存泄漏是指程序在使用完内存后,没有及时释放这些内存,导致内存占用不断增加,最终导致程序崩溃。为了避免内存泄漏,可以采取以下几个措施: 及时释放不需要的内存在 Go 语言中,垃圾回收机制可以自动回收不再使用的内存。但是,垃圾回收机制不能立即回收所有不再使用的内存,这可能会导致内存占 ......
内存 语言 情况

Go笔记(九):结构体

1、类型定义与类型别名 1.1、类型定义 语法: type NewType Type NewType:表示自定义类型 Type:表示现有类型 1 package main 2 3 import "fmt" 4 5 // 类型定义 6 func definestruct() { 7 type Snai ......
结构 笔记

Go指针未初始化、越界、悬挂问题以及优点

关于指针未初始化、指针越界、指针悬挂 指针未初始化可能会导致程序崩溃或者出现奇怪的行为,看看下面这个例子: package main import "fmt" type MyStruct struct { value string } func (s *MyStruct) SetValue(val  ......
指针 优点 问题

R语言多元(多变量)GARCH :GO-GARCH、BEKK、DCC-GARCH和CCC-GARCH模型和可视化|附代码数据

全文链接:http://tecdat.cn/?p=30647 最近我们被客户要求撰写关于GARCH 的研究报告,包括一些图形和统计输出。 从Engle在1982发表自回归条件异方差(ARCH)模型的论文以来,金融时间序列数据的波动性就倍受关注。同时,近几年又出现了研究股票市场的波动传递性 多市场的多 ......
GARCH 变量 DCC-GARCH CCC-GARCH GO-GARCH

Educational Codeforces Round 113 (Rated for Div. 2)

题目链接 B 核心思路 这个题目我觉得很好。 首先分析下吧,如果有人需要执行操作二那么我们肯定就是给他们都打上平局是最优的。 那么如果有人需要执行操作一呢,那么我们就可以把这些需要执行操作1的都搞一起。然后是他们成一个环。这样肯定就保证了每个人都会赢上一次。 C 核心思路 这个题目的性质其实就是我们 ......
Educational Codeforces Round Rated 113

golang 编译问题:gorm.io/plugin/dbresolver@v1.2.1/dbresolver.go:139:18: cannot use map[string]gorm.Stmt{} (value of type map[string]gorm.Stmt) as type map[string]*gorm.Stmt in struct literal

golang 执行 sh build 来编译项目时,发现了有报错 pkg/mod/gorm.io/plugin/dbresolver@v1.2.1/dbresolver.go:139:18: cannot use map[string]gorm.Stmt{} (value of type map[s ......
gorm string dbresolver Stmt map

Go: default print format

slice, map即使为nil打印格式和空元素的情况一样, chan,func,interface,pointer为nil时,打印<nil> 当chan,func,pointer赋值后,都打印地址, interface赋值后,永远打印其dynamic value的格式 package main i ......
default format print Go

Unable to create an object of type 'NetcoremvcDbcontext'. For the different patterns supported at design time, see https://go.microsoft.com/fwlink/?linkid=851728

问题描述:我整个项目重新生成没有报错,但是用efcore迁移数据库命令:Add-Migration init就生成不了文件夹Migrations,并且报错:Unable to create an object of type 'NetcoremvcDbcontext'. For the differ ......

go语言sync.Mutex

go语言sync.mutex 数据结构 type Mutex struct { state int32 sema uint32 } Mutex包含了两个字段,分别是state、sema,state表示了当前锁的状态,sema是用于控制锁的一个信号量。这是一个零值可用的结构体,零值表示未加锁 stat ......
语言 Mutex sync

Go 单表头结构体导入导出

Go 单表头结构体导入导出 首先感谢 github.com/xuri/excelize/v2 基础库对excel表格的支持,本文在此基础上进行功能的api扩展方便,(web/其他)有结构体导出与导入需求的封装优化,当前版本 v0.0.2 基本用法 安装 go get github.com/helia ......
表头 结构 Go

Go笔记(八):指针

1、指针 在Go中,指针的操作有两个符号:&(取地址) 和 * (变量指针的声明 | 取指针变量的值)。 一个指针变量指向了一个值的内存地址。 Go中函数传值皆为值拷贝,对于引用类型的传值,可以创建一个指针变量,无需拷贝数据。Go中,类型指针不能进行偏移和运算。 2、指针地址和指针类型 变量在运行是 ......
指针 笔记

Go语言中没有类(class)的概念,也没有传统意义上的继承(inheritance)

具体来说,可以定义一个基类(例如 struct),然后通过嵌入(embedding)基类的方式在子类中实现继承。同时,可以使用接口来定义类的行为。 举个例子,假设需要定义一个动物(Animal)作为基类,其中有一个Say方法表示动物的叫声: type Animal struct { NumLegs ......
inheritance 意义 概念 传统 语言

Go语言string和byte以及rune

Go语言string和byte以及rune go语言中,byte其实是utint8的别名,一个字节;rune是int32的别名,4个字节 一个字节可以表示ASCii中的所有,但是要表示unicode中的别的内容,就得用多个字节了,所以用rune来表示。 那么string和这俩有啥关系呢 用下标访问s ......
语言 string byte rune

go后台管理系统

先说一下运行环境。 go version:go version go1.19.5 framework:gin 1.9 mysql版本:5.7 redis版本:redis 6.0.6 里面的代码由于是初学go写的,会有瑕疵,还有很多优化空间。仅供参考。 代码在github上面也有,地址是:https: ......
后台 管理系统 系统

(微服务)服务治理:熔断器介绍以及hystrix-go的使用

一、什么是熔断器 要理解熔断器,可以先看看电路中使用的保险丝。 保险丝(fuse)也被称为电流保险丝,IEC127 标准将它定义为“熔断体(fuse-link)”。保险丝是一种保证电路安全运行的电子元器件,作用就是在电流异常升高到一定的高度和热度的时候,自身熔断切断电流,这样可以保护电路安全运行。 ......
熔断器 hystrix-go hystrix go

【go语言】错误处理

1. sentinel error 预定义的特定错误,我们叫为 sentinel error,这个名字来源于计算机编程中使用一个特定值来表示不可能进行进一步处理的做法。所以对于 Go,我们使用特定的值来表示错误。if err == ErrSomething { … }类似的 io.EOF,更底层的 ......
错误 语言

go struct结构体之间的转换

原文链接:https://www.zhoubotong.site/post/94.html 说下背景吧,大家在开发中可能在不同的目录(package)下定义了相同的struct(属性参数完全一样如名字、个数和类型),在方法调用传参数的时候,可能是用到了其中某一个struct的引用。 那么这里就牵扯到 ......
之间 结构 struct go