废话少说,直接贴代码~typeAstruct{Namestring}//测试unitfuncTestReflect(t*testing.T){reflectNew((*A)(nil))}//反射创建新对象。funcreflectNew(targetinterface{}){iftarget==nil...
2021-04-28 186 0 0 阅读全文
学习了Go语言后,打算利用最近比较空一点,写一个前端部署工具,不需要每次都复制粘贴的麻烦,需要完成部署的第一步就需要连接远程服务器打开sshserver首先我们想要利用ssh连接服务器的前提是服务器打开了sshserver,ssh分为client和server端,如果打开了client可以连接远程服...
2021-04-17 194 0 0 阅读全文
在Time包中,定义有一个名为Duration的类型和一些辅助的常量:typeDurationint64const(NanosecondDuration=1Microsecond=1000*NanosecondMillisecond=1000*MicrosecondSecond=1000*Milli...
2021-04-10 152 0 0 阅读全文
Time类型Now方法表示现在时间。funcDate(yearint,monthMonth,day,hour,min,sec,nsecint,loc*Location)Time返回现在的时间,func(tTime)Unix()int64将时间转换为unix时间戳,因为duration的限制,所以应该...
2021-04-10 158 0 0 阅读全文
实际工作中可能会有这样的场景:两个结构体(可能类型一样),字段名和类型都一样,想复制一个结构体的全部或者其中某几个字段的值到另一个(即merge操作),自然想到可以用反射实现packagemainimport"fmt"import"reflect"//用b的所...
2021-04-28 863 0 0 阅读全文
golang中的struct没有构造函数,一般可以使用工厂模式来解决这个问题。这个模式本身很简单而且使用在业务较简单的情况下。一般用于小项目或者具体产品很少扩展的情况(这样工厂类才不用经常更改)。代码结构如下:分别有main.go和student.go两个文件。在student.go中:packag...
2021-04-17 216 0 0 阅读全文
Iris+Casbin权限控制实战在木犀的PaaS云平台的设计中,需要有一个细粒度比较小的权限控制系统。不同用户对不同的资源,拥有不同的权限。土办法已经不管用了,我们需要更系统,更规范的权限控制系统。本文讲的就是如何将权限控制库Casbin接入IrisWeb框架。http://zxc0328.git...
2021-07-22 237 0 0 阅读全文
随机负载随机挑选目标服务器packageload_balanceimport("errors""math/rand")//随机负载均衡typeRandomBalancestruct{curIndexintrss[]string}func(r*RandomBal...
2021-06-21 99 0 0 阅读全文
Golang实现随机负载均衡负载均衡简介从设备角度实现负载均衡:硬件负载均衡:由专门的负载均衡器服务提供商,在你的服务器和外部网络之间架设服务商的负载均衡器。服务商提供设备和方案帮你处理流量的均衡,不过因为比较费钱包国内没什么人用软件负载均衡:包括家喻户晓的Nginx,LVS,Tengine(阿里版...
2021-06-21 83 0 0 阅读全文
vscode中安装ms-vscode.go插件后可以开启对go语言的支持,ms-vscode.go插件需要依赖一些工具,安装完成后提示gocodego-outlinego-symbolsgurugorenamegocode-gomodgoreturnsgolintInstallinggithub.c...
2021-04-26 204 0 0 阅读全文
1.反射反射这个概念绝大多数语言都有,比如Java,PHP之类,golang自然也不例外,反射其实程序能够自描述和自控制的一类机制。比如,通过PHP的反射,你可以知道一个类有什么成员,有什么方法。而golang,也能够通过官方自带的reflect包来了解各种变量类型及其信息。下面我们通过一个例子查看...
2021-04-30 188 0 0 阅读全文
代码封装是百干不厌的事,但有时候封装会导致一些问题。本文记录了个人在封装http请求时遇到的一个和nil判断有关的问题。nil是什么nil内置的一个变量,用来代表空值,且只有指针、channel、方法、接口、map和切片可以被赋值为nil。buildin/buildin.go://nilisapre...
2021-06-21 153 0 0 阅读全文
1概述C/C++和Java(以及大多数的主流编程语言)都有自己成熟的单元测试框架,前者如Check,后者如JUnit,但这些编程框架本质上仍是第三方产品,为了执行单元测试,我们不得不从头开始搭建测试工程,并且需要依赖于第三方工具才能生成单元测试的覆盖率。相比之下,Go语言官方则提供了语言级的单元测试...
2021-04-14 197 0 0 阅读全文
目前大都是使用validator安装gogetgopkg.in/go-playground/validator.v9原理当然只能通过反射来实现了,之前写过一篇反射的文章golang之反射和断言,里面有写到怎么通过反射获取structtag。读取structtag之后就是对里面的标识符进行识别,然后进...
2021-04-30 165 0 0 阅读全文
看代码吧~packagemainimport("fmt")typeXCDataStustruct{Idint`json:"id"xorm:"id"`Namestring`json:"name"xorm:"nam...
2021-04-29 138 0 0 阅读全文
一.简介gh-ost基于golang语言,是github开源的一个DDL工具,是GitHub'sOnlineSchemaTransmogrifier/Transfigurator/Transformer/Thingy的缩写,意思是GitHub的在线表定义转换器。1.1原理主要实现原理,首先建两张表,...
2021-03-18 233 0 0 阅读全文
看代码吧~funcmain(){a:=[]byte(`{"Parents":["aaaaa","bbbbbbb"]}`)b:=[]byte(`{"Parents":["Gomez","Mot...
2021-04-29 142 0 0 阅读全文
近期有一个需求:获取多个文件md5校验和判断是否存在重复文件,因为文件数量较多,有的文件还比较大,需要处理的文件还没有到位,我就考虑了一下效率的问题。目前我已知的Golang中获取md5校验和的方法有两个这里直接给出实现源码。packagemainimport("crypto/md5&qu...
2021-05-08 296 0 0 阅读全文
直入正题,我们看下以下代码:packagemainimport("encoding/json""fmt")funcmain(){//第一种声明varlanguagemap[string]stringlanguage=make(map[string]string...
2021-03-27 159 0 0 阅读全文
看代码吧~//自定义结构体,用来自定义排序typeRecentlyUpdateListMapSorter[]map[string]interface{}//根据MapSorter.Keys进行倒序排序func(ms*RecentlyUpdateListMapSorter)SortReverse(){...
2021-04-29 169 0 0 阅读全文
- 上一页
- 下一页