Golang
Luncert
https://github.com/Luncert
展开
-
JS调用摄像头、实时视频流上传(一次不成功的试验)
JS调用摄像头、实时视频流上传(一次不成功的试验)思路前端调用摄像头,获取视频流,从视频流中取一帧转图片,用websocket上传图片。研究了一下发现了WebRTC这种技术,看到有博客说一些直播应用使用WebRTC将视频流发布到服务器上,然后用hls等技术在前端播放,但是我花了些时间还是没搞清楚WebRTC的原理,只能以后再尝试了。1.前端代码前端用的React+Typescript...原创 2019-10-24 22:29:41 · 5154 阅读 · 2 评论 -
Golang: switch case 与 fallthrough
Goland: switch case 与 fallthroughExmaple:package mainimport "fmt"func main() { handle(0) handle(1)}func handle(i int) { switch i { case 0: case 1: fallthrough case 2: fmt.Print...原创 2019-09-07 15:14:44 · 859 阅读 · 0 评论 -
Redis笔记:Redis的字典什么时候进行Rehash?
Redis笔记:Redis的字典什么时候进行Rehash?哈希表的负载因子公式:load_factor = ht[0].used / ht[0].size负载因子 = 哈希表已保存节点数量 / 哈希表大小当服务器没有在执行 BGSAVE 命令或者 BGREWRITEAOF 命令,并且哈希表的负载因子大于等于1服务器正在执行 BGSAVE 命令或者 BGREWRITEAOF 命令,并且哈...原创 2019-09-07 11:37:51 · 1116 阅读 · 0 评论 -
Golang:延迟调用函数与return的谁先谁后?
Golang:延迟调用函数与return的谁先谁后?package mainimport "fmt"var a = 10func main() { fmt.Printf("a = %d\n", test())}func test() int { defer func() { a = 20 }() return a}输出:a = 10结论:return先于...原创 2019-09-06 15:00:58 · 249 阅读 · 0 评论 -
Golang:闭包函数中对外部变量引用的是值还是指针?
Golang:闭包函数中对外部变量引用的是值还是指针package mainimport "fmt"func main() { v := 10 defer func() { fmt.Printf("v = %d\n", v) }() v = 30}输出:v = 30显而易见,引用的是指针...原创 2019-09-06 14:56:49 · 814 阅读 · 0 评论 -
Go播放音乐(Linux)
依赖首先安装mpg123:https://nchc.dl.sourceforge.net/project/mpg123/mpg123/1.25.10/mpg123-1.25.10.tar.bz2,下载下来后解压、configure、make然后make install安装portaudio19-dev:apt-get install portaudio19-dev安装go依赖:gith...原创 2019-04-20 00:09:24 · 1528 阅读 · 0 评论 -
推荐两个工具:hyper与micro
直接上图:hyper是一个基于electron实现的终端,支持一个窗口横向或纵向开多个终端,官方也有很多主题可以安装,启动比原生终端稍微慢一些,但是使用起来没有任何问题。micro是go语言实现的命令行编辑器,作为一个不会用vim的小白,感觉micro实在是太亲民了。micro支持超过90多种语言的语法高亮(官方说的),搭配hyper多终端,拿来写代码也挺舒服的!hypermicro...原创 2019-04-21 12:56:51 · 301 阅读 · 0 评论 -
Go实现微服务异步消息通信(一)Broker
Go实现微服务异步消息通信先学习一下go-micro源码首先是基于内存的实现接下来是基于http的实现先学习一下go-micro源码先贴出Broker接口定义:// Broker is an interface used for asynchronous messaging.type Broker interface { Options() Options Address() stri...原创 2019-04-12 18:30:31 · 1828 阅读 · 0 评论 -
Go Tool学习(一)scanner(2)TestSemis方法
Go Tool学习(一)scanner(2)TestSemis方法测试输入——全局变量lines:var lines = []string{ // # indicates a semicolon present in the source // $ indicates an automatically inserted semicolon "", "\ufeff#;", // firs...原创 2019-04-09 11:36:07 · 142 阅读 · 0 评论 -
Go Tool学习(一)scanner(1)TestScan方法
Go Tool学习(一)scanner(1)TestScan方法先看几个全局变量开始scan之前进入循环,开始scan先看几个全局变量fset:源码文件信息集合special、literal、operator、keyword:标识Token类别tokens:用于测试的token集合whitespace:用于测试的空白符source:根据tokens和whitespace拼接而成的字节...原创 2019-04-08 16:59:31 · 729 阅读 · 0 评论 -
Golang:if语句声明变量作用域的问题
看这样一段代码package mainimport ( "fmt" "errors" "strings")func parseName(name string) (parsed string, err error) { if name == "" { err = errors.New("empty string") } else { parsed = strings....原创 2019-03-22 15:43:58 · 4936 阅读 · 0 评论 -
Golang:使用reflect实现Spring的自动装配
先上最终效果,一段测试代码:package windimport ( "testing" "reflect" "fmt")type Person struct { Name string `@:"Autowired"`}func (p *Person) hello() { fmt.Println("Hello,", p.Name)}func TestWind(t ...原创 2019-03-21 22:53:11 · 1210 阅读 · 2 评论