ubuntu下openconnect替代anyconnect

2019-11-14
阅读 1 分钟
7k
ubuntu图形界面上点右上角网络图标添加个vpn即可。终端需要额外安装:apt-get install vpncvpn连接openconnect --script /etc/vpnc/vpnc-script -b -u your_username your_vpn_url然后输入密码即连接成功

reflect笔记

2019-02-01
阅读 3 分钟
1.5k
reflect使用和源码阅读的心得笔记。 TypeOf使用 {代码...} VauleOf使用 {代码...} 设值 {代码...}

unsafe包的应用与字节对齐

2019-01-02
阅读 1 分钟
1.9k
此例子基于struct在内存中是连续的,并且知道S的结构。以上仅为记录unsafe包的基本使用方式和字节对齐是怎么回事,以免忘了,非实际应用场景。

mysql并发replace死锁

2018-11-15
阅读 1 分钟
8k
查询LATEST DETECTED DEADLOCK标签下的日志,可见最近一次发生死锁的语句。再加上对比正常执行的sql语句,问题定位在使用replace into上。

并发环境应用map的解决方案

2018-09-03
阅读 2 分钟
2.4k
运行报错:fatal error: concurrent map writes1.9版本之前,官方提供的解决方案是自己封装个带同步锁的struct。例如:

defer的坑与return的理解

2018-08-13
阅读 1 分钟
2.4k
defer会经常用到,但是这个坑对于我并不会踩到,因为我通常不会用到命名返回参数,一则没有多少必要,二则增加了代码阅读难度。不过,这个坑能让人很好地理解return这个关键字,所以在此记录下。

strings包里面的Split函数的坑

2018-07-31
阅读 1 分钟
3.1k
无论哪种开发语言,Split函数都是经常用到。最近发现了strings包里的Split函数有个坑,真是活久见。 {代码...} 期望获得结果应该是0,因为经常读数据字段的时候会做是不是几元组的判断。实际输出为: {代码...} 来看Split的实现 {代码...} 可以看到最后的返回的slice最少也有一个值。细节要多注意啊,不能用固有观念来看...

mysql分割字符串

2018-02-26
阅读 2 分钟
8.3k
项目有通过一批ID去过滤结果的需求,因为这个ID是从其他平台拉下来的excel,为了避免加引号逗号的麻烦,在mysql存储过程里面拼接。在此做个记录。很多地方用得上。1.通过某个字符,分割字符串的函数。输入分别为f_string(待分割字符串),f_delimiter(分割字符),f_order(取的字符串的index)

golang RPC 应用(1) :net/rpc的应用

2018-01-15
阅读 5 分钟
5.5k
RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。---百...

golang中protocolbuff的使用

2018-01-11
阅读 2 分钟
4k
protocolbuff是Google推出的开源序列化协议,几乎支持市面上所有主流语言。用作服务器与服务器或者客户端与服务器的网络传输协议再合适不过了。简单写个demo。项目结构:

go的channel使用与总结

2017-12-28
阅读 3 分钟
20.1k
1.同步模式channel默认为同步模式,即不创建缓冲区,发送和接收需要一一配对,不然发送方会被一直阻塞,直到数据被接收。需要注意的是,同步的channel不能在一个协程中发送&接收,因为会被阻塞而永远跑不到接收的语句。一个最简单的例子:

golang类型断言(Type Assertion)的应用

2017-12-19
阅读 3 分钟
11.8k
简单记录下平时开发对类型断言(Type Assertion)的使用场景。 golang里的所有类型都实现了空接口interface{},所以通常将它作为一个函数的参数或者结构体的字段,以实现对类型的抽象。 1.用于转换函数里interface{}类型的参数举个简单栗子: {代码...} 输出结果: type [int] add res[3]type [int16] add res[3]type [floa...

通过sort包的使用,理解golang接口的应用

2017-12-18
阅读 2 分钟
4.1k
在go语言的应用中,涉及到排序,通常使用sort包来实现,sort包中实现了3种基本的排序算法:插入排序,快排和堆排序,这里不打算探讨排序算法,而会通过使用sort包,来理解interface的应用。

方法,接口学习笔记

2017-11-21
阅读 3 分钟
2.1k
注意,用receiver类型为T的实例去调用方法其实可以调用到所有T和*T的方法,不受方法集约束,编辑器会自动找到对应方法并转换 receiver 实参

slice的append操作注意事项

2017-11-14
阅读 3 分钟
4.2k
从其他语言例如C++,如果不能很好的理解slice和slice的append操作,把slice作为引用类型传参,会导致丢失数据。首先,函数之间传递变量时总是以值的方式传递的。也就是说,即使你传的slice之类的引用类型,也是传的它的一个copy。例子:

golang中数组和slice作为参数的区别

2017-11-14
阅读 2 分钟
10.9k
举个例子,[5]int为数组,[]int为slice(数组切片),数组是值类型,而slice为引用类型,值类型作为参数传入函数,只是拷贝了个副本,修改并不会作用到传入的那个参数,所以一般使用slice作为参数,免去了拷贝的消耗,但是有坑在里面,下面写例子说明。