-
Golang、Python中刷直播视频弹幕的功能。
所属栏目:[大数据] 日期:2020-12-16 热度:176
别人需要做这个功能,开始用易语言实现,发现被编码的问题绕到坑底了,ANSI-UTF8,gb323-uft8 ansi到un等等,做到最后也没有完成,因为做一个程序顾客的要求有时候很苛刻,有的甚至需要几个小时完成。 因为这个APK,是新版本的,我曾经研究了几百个APK,也反[详细]
-
关于 golang 并发
所属栏目:[大数据] 日期:2020-12-16 热度:193
golang中实现并发非常简单,只需在需要并发的函数前面添加关键字"go”,但是如何处理go并发机制中不同goroutine之间的同步与通信,golang 中提供了sync包和channel机制来解决这一问题. sync 包提供了互斥锁这类的基本的同步原语.除 Once 和 WaitGroup 之外[详细]
-
golang Version 升级
所属栏目:[大数据] 日期:2020-12-16 热度:65
升级方法: 1.到官网下载需要的安装包:https://golang.org/doc/install 2.安装,默认会安装到/usr/local/go 目录 3.添加/usr/local/go/bin到PATH环境变量 go version 验证是否安装成功。必要时需要先删除老版本(brew unistall go),再安装新版本[详细]
-
golang byte splice转**C.char
所属栏目:[大数据] 日期:2020-12-16 热度:188
最近部分功能在用golang build成c库,然后让python ctypes调用。 ###实现过程 根据*C.char,[][]byte生成一块内存空间 遍历[][]byte,根据index,*C.char的尺寸来做指针运算 在适当的位置进行赋值 做类型转换 cyptes中设置restype = ctypes.POINTER(ctypes.c_c[详细]
-
【原创】源码解析 packetbeat 之 responsetime 计算问题
所属栏目:[大数据] 日期:2020-12-16 热度:70
问题 使用 packetbeat 进行抓包分析的主要目的之一就是 确定 request 和 response 之间 latency 时间 ;而 responsetime 值对应的就是这个时间,因此该值的计算方式,以及准确性在实际使用中非常重要; 表现 在基于 packetbeat 的分析报告中,经常可以看到如[详细]
-
Go的50度灰:Golang新开发者要注意的陷阱和常见错误
所属栏目:[大数据] 日期:2020-12-16 热度:165
转载:http://colobu.com/2015/09/07/gotchas-and-common-mistakes-in-go-golang/ 目录 [?] 初级 开大括号不能放在单独的一行 未使用的变量 未使用的Imports 简式的变量声明仅可以在函数内部使用 使用简式声明重复声明变量 偶然的变量隐藏Accidental Variabl[详细]
-
Golang语言空白符
所属栏目:[大数据] 日期:2020-12-16 热度:120
空白符(blank identifier) 空白符的产生可能是因为go不允许变量声明了但不使用。既然不想使用,何必声明变量呢,那就将变量用空白符代替,反正空白符就是用来抛弃的。 1 空白符用来匹配一些不需要的值,然后丢弃掉,下面的 blank_identifier.go 就是很好的[详细]
-
Go语言(golang)包设计哲学/原则与项目结构组织最佳实践
所属栏目:[大数据] 日期:2020-12-16 热度:92
总结下Go的package设计哲学 明确目的 在准备设计一个包之前,我们需要明确它的目的。 包的命名就必须明确体现其目的,而不仅仅是为了存放代码。像标准库的io,http,fmt这些包名就很好,而像util.helper,common这种命名就是反面教材。 可用性 想想使用这个包的[详细]
-
golang编写一个简单的生成消费模式
所属栏目:[大数据] 日期:2020-12-16 热度:78
生成消费模式大家在现实生活中经常遇到,如果使用java编写可以使用阻塞队列如BlockingQueue,Python也有相应的组件,如果使用golang编写使用自带的channel管道更加简单。 下面直接看代码: package main import "fmt" func consumer(ch chan int ,done chan[详细]
-
golang(4)使用beego + ace admin 开发后台系统 CRUD
所属栏目:[大数据] 日期:2020-12-16 热度:165
1,关于ace admin ace admin 是一个非常好的后台系统ui。 集成了很多的好东西。非常的方便开发后天系统,而且能很漂亮。 上面有一堆的例子。非常的漂亮。 http://ace.jeka.by/ 之前还是收费的。后来在github 上面放了一个项目。 但是没有源码。是压缩之后的[详细]
-
golang学习笔记之range
所属栏目:[大数据] 日期:2020-12-16 热度:185
range遍历是复制 range遍历数组是复制数组: a := []int{ 1 , 2 , 3 , 4 , 5 } for _,x := range a { x += 3 } for _,x := range a { fmt.Println(x) } 输出结果是: 1 2 3 4 5 是复制了数组的元素,当然,如果你想修改数组的元素可以使用 for i := range a[详细]
-
golang学习笔记之赋值
所属栏目:[大数据] 日期:2020-12-16 热度:52
变量作用域 a := 3 fmt.Println( a , a ) //a :=3 //变量重复定义的err { a := 2 fmt.Println( a , a ) } 输出结果: 0xc42000a278 3 0xc42000a2a8 2 开辟新的内存空间保存变量,这涉及到变量的作用域 赋值是先计算出右边的值 x,y : = 1,4 x,y= y+3,x +4 fmt[详细]
-
golang学习笔记之引用类型与值类型
所属栏目:[大数据] 日期:2020-12-16 热度:51
在golang中只有三种引用类型它们分别是切片slice、字典map、管道channel。其它的全部是值类型,引用类型可以简单的理解为指针类型,它们都是通过make完成初始化 看下面两个例子: a :=[ 5 ]int{ 2 , 3 , 4 , 5 , 6 } b := a b[ 2 ]= 77 fmt.Println( a ,b)[详细]
-
go语言坑之for range
所属栏目:[大数据] 日期:2020-12-16 热度:179
go只提供了一种循环方式,即for循环,在使用时可以像c那样使用,也可以通过for range方式遍历容器类型如数组、切片和映射。但是在使用for range时,如果使用不当,就会出现一些问题,导致程序运行行为不如预期。比如,下面的示例程序将遍历一个切片,并将切[详细]
-
beego框架学习(一)
所属栏目:[大数据] 日期:2020-12-16 热度:103
beego简介 Beego是一个快速开发Go应用的http框架,可用于快速开发Api、web及后端服务等各种应用,是一个RESTful框架。 beego的架构 Beego由八个独立模块构建,是一个高度解耦的应用,用户可以不是用beego的http逻辑使用里面的任意模块。具体架构设计如下: be[详细]
-
golang中tcp socket粘包问题和处理
所属栏目:[大数据] 日期:2020-12-16 热度:154
在用golang开发人工客服系统的时候碰到了粘包问题,那么什么是粘包呢?例如我们和客户端约定数据交互格式是一个json格式的字符串: {"Id":1,"Name":"golang","Message":"message"} 当客户端发送数据给服务端的时候,如果服务端没有及时接收,客户端又发送了[详细]
-
2. 使用golang特性编写的程序结构
所属栏目:[大数据] 日期:2020-12-16 热度:171
所有的服务器都有相似的程序结构 net.Conn 的 Write 和 Read 方法都是阻塞式执行的,所以要 为每个 TCP 连接创建两个协程,分别用来接收和发送数据 .在接收协程中计算生成的数据,要发送给对端时,常规做法是生成一个 []byte 切片 ------ buf := make( []byte,len[详细]
-
Golang捕获panic堆栈信息的优雅姿势
所属栏目:[大数据] 日期:2020-12-16 热度:103
// PanicTrace trace panic stack info.func PanicTrace(kb int) []byte { s := []byte("/src/runtime/panic.go") e := []byte("ngoroutine ") line := []byte("n") stack := make([]byte,kb10) //4KB length := runtime.Stack(stack,true) start := bytes[详细]
-
golang(5)使用beego 开发 api server 和前端同学拆分开发,使
所属栏目:[大数据] 日期:2020-12-16 热度:88
1,beego api Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。 项目地址是:http://swagger.io/ 使用 beego 开发自带集成了 swagger的东西。 https://[详细]
-
golang 反射(一)
所属栏目:[大数据] 日期:2020-12-16 热度:71
golang和java一样都支持反射,可以从变量反向推导出类型方法。 float64反射 先看一个基本类型float64的例子 var x float64 = 5.3 fmt .Println ( "type:" ,reflect .TypeOf ( x )) v := reflect .ValueOf ( x ) fmt .Println ( "value:" ,v) fmt .Println ([详细]
-
sync.WaitGroup的错误用法与纠正
所属栏目:[大数据] 日期:2020-12-16 热度:72
sync.WaitGroup的错误用法与纠正 本文主要是记录在学习golang语言过程中错误使用sync.WaitGroup以及指针引起的报错,并且纠正过程。 1.错误使用场景 main包的实现内容: package main import ( "fmt" "pressure/game" "sync" ) var waitGroup sync.WaitGroup[详细]
-
go语言string、int、int64互相转换以及时间转换
所属栏目:[大数据] 日期:2020-12-16 热度:174
#string到int int,err:=strconv.Atoi(string) #string到int64 int64,err := strconv.ParseInt(string,10,64) #int到string string:=strconv.Itoa(int) #int64到string string:=strconv.FormatInt(int64,10) 时间格式化yyyy-MM-dd hh:mm:ss var _startDate in[详细]
-
golang slice 切片原理
所属栏目:[大数据] 日期:2020-12-16 热度:130
golang 中的 slice 非常强大,让数组操作非常方便高效。在开发中不定长度表示的数组全部都是 slice 。但是很多同学对 slice 的模糊认识,造成认为golang中的数组是引用类型,结果就是在实际开发中碰到很多坑,以至于出现一些莫名奇妙的问题,数组中的数据丢[详细]
-
golang获取命令行参数
所属栏目:[大数据] 日期:2020-12-16 热度:188
http://www.01happy.com/golang-command-line-arguments/ 部署golang项目时难免要通过命令行来设置一些参数,那么在golang中如何操作命令行参数呢?可以使用os库和flag库。 golang os库获取命令行参数 os可以通过变量Args来获取命令参数,os.Args返回一个字[详细]
-
Golang里的Future/Promise
所属栏目:[大数据] 日期:2020-12-16 热度:127
现如今,应用执行时最普遍存在的瓶颈就是网络请求了。网络请求只要几毫秒,但是等到返回却要百倍的时间。所以,如果你执行多个网络请求,让他们都并行执行就是减少延迟最好的选择了。Future/Promise就是实现这一目的的手段之一。 一个Future就是说“将来”你[详细]
