
Go语言开发
yyyyyyyuande
这个作者很懒,什么都没留下…
展开
-
Golang Context源码解析
Golang Context包源码解读原创 2022-08-25 13:41:18 · 756 阅读 · 0 评论 -
Go语言中CGO的使用例子
部门产品业务功能采用Golang开发,但是有些功能是用c写的,比如说net-snmp,bfd协议等等,像这些如果使用GO语言重编的话,既有实现的复杂度也需要相当长的时间,好在GO语言提供了CGO机制,使得能够在go代码中直接调用C的库函数,大大提高了效率,减少了重复开发工作,此外还支持在C语言中调用GO函数,这一点还是蛮强大的。1. Go语言调用C函数例子:package ...原创 2019-05-11 18:00:59 · 24683 阅读 · 1 评论 -
golang 编译提示 cannot assign interface {} 和golang断言使用
golang 编译提示 cannot assign interface {} 和golang断言使用:从sync.Map中读取值的时候出现如下编译错误,因为返回的是interface类型,需要做转换才能使用,golang提供了类型断言来实现这类转换:(type interface {} is interface with no methods)格式如下:t := i.(T)...原创 2019-05-07 10:05:10 · 2930 阅读 · 0 评论 -
Golang Context包的使用
context包主要用来控制goroutings间的并发控制。使用场景包括通知子协程退出这种。相关接口和示例:func Background() ContextBackground returns a non-nil, empty Context. It is never canceled, has no values, and has no deadline. It is typi...原创 2019-05-06 14:25:48 · 519 阅读 · 0 评论 -
Golang copy()函数
copy是内置函数,用于从切片中复制数据(存在一种特殊情况即从字符串中复制到字符切片中),源切片和目的切片可以重叠,返回复制的元素个数,等于源和目的的最小长度值。func copy(dst, src []Type) intThe copy built-in function copies elements from a source slice into adestination s...原创 2019-04-30 09:51:44 · 8886 阅读 · 0 评论 -
Golang gorouting 并发控制 sync.WaitGroup 介绍与使用
WaitGroup简称同步组,用于等待goroutines结束的。官方文档:type WaitGroupA WaitGroup waits for a collection of goroutines to finish. The main goroutine calls Add to set the number of goroutines to wait for. Then e...原创 2019-05-05 18:26:57 · 1311 阅读 · 0 评论 -
golang sync.Map 使用
自1.9版本以后提供了sync.Map,支持多线程并发读写,比之前的加锁map性能要好一点。提供一下几个方法:type Map //删除指定key func (m *Map) Delete(key interface{}) //查询指定key func (m *Map) Load(key interface{}) (value interface...原创 2019-04-20 13:48:02 · 7041 阅读 · 0 评论 -
Golang 计算MD5值示例
Golang提供了"crypto/md5"包用来计算md5值,使用起来简单方便,解决了我长久以来的疑问^_^一种是直接调用md5计算package mainimport ( "crypto/md5" "fmt")func main() { data := []byte("crypted data") fmt.Printf("%x", md5.Sum(data))}...原创 2019-04-12 18:42:07 · 2963 阅读 · 0 评论 -
使用Golang flag包解析字符串
本篇文章主要介绍如何使用flag包解析字符串,没有介绍flag包的详细使用,需要学习flag包如何使用的同学可以参考如下这篇文章:Go语言中使用flag包对命令行进行参数解析的方法https://www.jb51.net/article/82812.htmGolang的flag包类似于c语言里面的getopt, getopt_long函数,都是用来解析命令行字符串的类似于如下格式...原创 2019-03-17 15:26:01 · 2107 阅读 · 2 评论 -
Golang Study 三 map的顺序输出
GO语言中遍历map输出的时候是无序的,不同的遍历会有不同的输出结果,如果想要顺序输出的话,需要额外保存顺序,然后再从map中读取。随着Go语言的不断发展,官方或许会提供额外的顺序读取map方法,目前要想这么做的话就得自己实现了。下面是一个顺序读取map例子,将map的key值存储到一个slice数组中,然后对数组进行排序,这样就可以通过slice数组里的值顺序去读map。package ...原创 2018-11-08 22:49:43 · 4476 阅读 · 0 评论 -
Golang Study 二 UDP套接字使用
最近项目用到Go语言,一点点学习,记录一下用法。udp套接字使用例子:// udp_go_demo.gopackage mainimport ( "fmt" "net" "os")func CheckErr(err error, str string) { if err != nil { fmt.Println(str) os.Exit(1) }}fu...原创 2018-06-22 19:57:10 · 564 阅读 · 0 评论 -
Golang Study 一 定时器使用
通用的定时器使用例子,包括创建定时器和重置定时器。package mainimport ( "fmt" "time" //time包)func main() { //创建定时器并设置定时时间 TimerDemo := time.NewTimer(time.Duration(1) * time.Second) //监听定时器 select { case <...原创 2018-06-22 19:15:17 · 2319 阅读 · 0 评论