您的位置:首页关键词: Golang
  • Golang之sync.Pool使用详解
    前言我们通常用 Golang 来开发并构建高并发场景下的服务,但是由于 Golang 内建的GC机制多少会影响服务的性能,因此,为了减少频繁GC,Golang提供了对象重用的机制,也就是使用sync.Pool构建对象池。sync.Pool介绍首先sync.Pool是可伸缩的临时对象池,也是并发安全的...
    日期:2023-10-17浏览:146
    标签: Golang
  • golang 如何实现HTTP代理和反向代理
    代理的核心功能可以用一句话概括:接受客户端的请求,转发到后端服务器,获得应答之后返回给客户端。代理的功能有很多,事实上整个互联网到处都充斥着代理服务器。如果所有的 HTTP 访问都是客户端和服务器端直接进行的话,我们的网络不仅会变得缓慢,而且性能会大打折扣。代理服务器根据不同的配置和使用,可能会有不...
    日期:2023-10-16浏览:116
    标签: Golang
  • 关于golang高并发的实现与注意事项说明
    一、并发的意义并发的意义就是让 一个程序同时做多件事情,其目的只是为了能让程序同时做另一件事情而已,而不是为了让程序运行的更快(如果是多核处理器,而且任务可以分成相互独立的部分,那么并发确实可以让事情解决的更快)。golang从语言级别上对并发提供了支持,而且在启动并发的方式上直接添加了语言级的关键...
    日期:2023-10-13浏览:260
    标签: Golang
  • 解决Golang小数float64在实际工程中加减乘除的精度问题
    GO语言的float64类型在做加减乘除时会出现一些问题比如乘法运算,实例,将小数的元转换成整数的分:发现将小数的元乘以100后强制转换为整数分,少了1分解决办法:var (a, b float64c int64)a = 2.55b = 0.0c = int64((a + b) * 100.0)fm...
    日期:2023-09-30浏览:222
    标签: Golang
  • Golang 空map和未初始化map的注意事项说明
    可以对未初始化的map进行取值,但取出来的东西是空:var m1 map[string]stringfmt.Println(m1['1'])不能对未初始化的map进行赋值,这样将会抛出一个异常:panic: assignment to entry in nil mapvar m1 map[strin...
    日期:2023-10-25浏览:20
    标签: Golang
  • golang slice元素去重操作
    合并两个整型切片,返回没有重复元素的切片,有两种去重策略1. 通过双重循环来过滤重复元素(时间换空间)// 通过两重循环过滤重复元素func RemoveRepByLoop(slc []int) []int { result := []int{} // 存放结果 for i := ra...
    日期:2023-10-22浏览:299
    标签: Golang
  • Golang 实现interface类型转string类型
    看代码吧~// Strval 获取变量的字符串值// 浮点型 3.0将会转换成字符串3, '3'// 非数值或字符类型的变量将会被转换成JSON格式字符串func Strval(value interface{}) string {var key stringif value == nil {ret...
    日期:2023-10-28浏览:71
    标签: Golang
  • Golang模拟令牌桶进行对访问的限流方式
    利用channel进行模拟令牌桶对访问进行限流func FW(max int,duration time.Duration){//定义一个channel ,进行初始化contain := make(chan bool , max)for i := 0 ; i < max ; i ++{cont...
    日期:2023-10-28浏览:98
    标签: Golang
  • Golang Gob编码(gob包的使用详解)
    gob是Golang包自带的一个数据结构序列化的编码/解码工具。编码使用Encoder,解码使用Decoder。一种典型的应用场景就是RPC(remote procedure calls)。gob和json的pack之类的方法一样,由发送端使用Encoder对数据结构进行编码。在接收端收到消息之后,...
    日期:2023-10-15浏览:118
    标签: Golang