栏目: Golang

Golang 如何获取Map所有Key的方式

最佳方式:根据map的长度,新建一个数组,遍历map逐个压入方法1(效率很高):funcgetKeys1(mmap[int]int)[]int{//数组默认长度为map长度,后面append时,不需要重新申请内存和拷贝,效率很高j:=0keys:=make([]int,len(m))fork:=ra...

2021-04-25 563 0 0 阅读全文

浅谈Golang Package中Init方法的多处定义及运行顺序问题

在不了解这个问题之前,在网上搜索一下竟然搜出了两个完全相反的结果,所以打算自己测试下这个问题。首先给出结论:在同一个package中,可以多个文件中定义init方法在同一个go文件中,可以重复定义init方法在同一个package中,不同文件中的init方法的执行按照文件名先后执行各个文件中的ini...

2021-05-06 117 0 0 阅读全文

GolAnd 2020或2019软件版本去掉A...或Fmt...提示的方法

Goland是JetBrains公司出品的一款开发Golang的工具。由于本人是JetBrains公司产品的重度使用者,好多都作为主力开发工具(IntellijIIDEA、PyCharm、WebStorm等),所以Goland一经推出,就成为我开发Golang的首选IDE。下面介绍,去掉代码里a…或...

2021-04-24 279 0 0 阅读全文

Go语言实现Base64、Base58编码与解码

1.常见的编码base64:26个小写字母、26个大写字母、10个数字、/、+base58(区块链):去掉6个容易混淆的,去掉0,大写的O、大写的I、小写的L、/、+/、+影响双击选择2.go语言实现base64的编码与解码2.1Base64编码原理2.2实现Base64的编码与解码base64pa...

2021-07-26 165 0 0 阅读全文

Go语言-为什么返回值为接口类型,却返回结构体

最近由于项目需求,阅读一些Go语言编写的项目的源代码,在某一个函数中发现了一个奇怪的现象:一个函数的返回值类型声明的是一个接口的类型,但是实际在函数体内返回的却是一个结构体类型的对象。这个现象对于新手的我来说很是费解。在经过一些资料的查阅之后,自己得到了如下的解释:一个结构体实现了一个接口,那么函数...

2021-04-24 466 0 0 阅读全文

Golang实现四种负载均衡的算法(随机,轮询等)

随机负载随机挑选目标服务器packageload_balanceimport("errors""math/rand")//随机负载均衡typeRandomBalancestruct{curIndexintrss[]string}func(r*RandomBal...

2021-06-21 85 0 0 阅读全文

Golang内置函数Len的小技巧

len是很常用的内置函数,可以测量字符串、slice、array、channel以及map的长度/元素个数。不过你真的了解len吗?也许还有一些你不知道的小知识。我们来看一道GO101的题目,这题也被GO语言爱好者周刊转载:packagemainimport"fmt"funcma...

2021-07-26 138 0 0 阅读全文

Golang实现简单随机负载均衡

Golang实现随机负载均衡负载均衡简介从设备角度实现负载均衡:硬件负载均衡:由专门的负载均衡器服务提供商,在你的服务器和外部网络之间架设服务商的负载均衡器。服务商提供设备和方案帮你处理流量的均衡,不过因为比较费钱包国内没什么人用软件负载均衡:包括家喻户晓的Nginx,LVS,Tengine(阿里版...

2021-06-21 67 0 0 阅读全文

C# DialogResult用法案例详解

在程序中,经常会弹出一个对话框来让用户填写一些信息,填写完成后,当用户点击“确定”按钮后,在主窗体中进行其他的处理。比如一个简单的例子,在主窗体中有一个菜单,是“增加用户”,当点击这个菜单之后,我们需要弹出一个增加用户的窗体出来,就假设“增加用户”的窗体叫frmAddUser,那么代码如下:frmA...

2021-09-08 133 0 0 阅读全文

Golang实现Directional Channel(定向通道)

通道可以是定向的(directional)。在默认情况下,通道将以双向的(bidirectional)形式运作,用户既可以把值放人通道,也可以从通道取出值;但是,通道也可以被限制为只能执行发送操作(send-only)或者只能执行接收操作(receive-only)。通常可以叫定向通道,也有人叫单向...

2021-03-28 118 0 0 阅读全文

Golang定时器的终止与重置实现

Golang:定时器的终止与重置昨日有读者对定时器的终止有疑问,今天我们来聊一聊定时器的终止与重置吧!先看下面一段代码:funcmain(){timer:=time.NewTimer(3*time.Second)fmt.Println(time.Now(),"炸弹将于3秒后引爆"...

2021-09-08 116 0 0 阅读全文

Golang实现京东支付V2版本的示例代码

一、准备阶段pc&h5接入步骤官方文档https://payapi.jd.com/docList...查看主要接入步骤密钥生成•需要设置desckey•md5key和appidapp对接会使用•证书文件名称my_rsa_private_pkcs8_key.pemwy_rsa_public_k...

2021-03-25 130 0 0 阅读全文

Golang1.16内嵌静态资源指南

今天是万圣节,也是golang1.16新特性冻结的日子。不得不说自从go2路线发布之后golang新特性的迭代速度也飞速提升,1.16中有相当多的重要更新,包括io标准库的重构,语言内置的静态资源嵌入等。本次将要介绍的是新的静态资源嵌入功能,虽然之前已经有相关的提案,但实际的api和提案还有些出入,...

2021-07-14 121 0 0 阅读全文

详解Go中Set的实现方式

本篇主要讲述如何利用Go语言的语法特性实现Set类型的数据结构。需求对于Set类型的数据结构,其实本质上跟List没什么多大的区别。无非是Set不能含有重复的Item的特性,Set有初始化、Add、Clear、Remove、Contains等操作。接下来看具体的实现方式分析吧。实现仍然按照已有的编程...

2021-04-28 137 0 0 阅读全文

Golang切片扩容规则实现

golang扩容规则举个例子来演示下packagemainimport("fmt")funcmain(){arr1:=[4]int{1,2,3,4}//此时slice1为[1,2,3]长度为3,容量为4slice1:=arr1[:3]fmt.Println(slice1,len(...

2021-03-25 150 0 0 阅读全文

Golang Http使用踩过的坑与填坑指南

golang对http进行了很好的封装,使我们在开发基于http服务的时候,十分的方便,但是良好的封装,很容易是的我们忽略掉它们底层的实现细节。如下是我踩过的一些坑,以及相应的解决方法。调用http服务通常的实践如下:resp,err:=http.Get("http://example.c...

2021-04-28 149 0 0 阅读全文

Golang Import导入包语法介绍

package的导入语法写Go代码的时经常用到import这个命令用来导入包,参考如下:import(  "fmt")然后在代码里面可以通过如下的方式调用:fmt.Println("我爱北京天安门")fmt是Go的标准库,它其实是去GOROOT下去加载该模块,...

2021-07-05 147 0 0 阅读全文

Golang在GRPC中设置Client的超时时间

超时建立连接主要就2函数Dail和DialContext。//Dialcreatesaclientconnectiontothegiventarget.funcDial(targetstring,opts...DialOption)(*ClientConn,error){returnDialCont...

2021-04-28 190 0 0 阅读全文

在Python IDLE下调用Anaconda中的库

大家都知道,Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。下载了anaconda我们可以很方便的随时调用这里面的库。原先我自己在Python官网下载了python3.7开发环境,anaconda的后面下载的,平时比较喜欢使用IDLE作...

2021-07-05 133 0 0 阅读全文

Golang 实现Json类型不确定时的转换

将json转为结构体时,经常会遇到无法确定某个字段类型的情况。在Go中可以使用interface任意类型来解决。//convertjsontostruct//typeuncertainpackagemainimport("fmt""encoding/json"...

2021-03-07 206 0 0 阅读全文