![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go基础
「已注销」
https://blog.csdn.net/Edu_enth/
展开
-
Go语言通用方法笔记
package commonimport ( "bufio" "bytes" "crypto/sha256" "encoding/hex" "fmt" "io" "log" "os" "原创 2018-11-09 14:28:12 · 147 阅读 · 0 评论 -
Go面试经典
http://mini.eastday.com/bdmip/180420102150604.html转载 2018-11-19 14:15:35 · 832 阅读 · 0 评论 -
Go高性能日志库zap详细分析
https://mp.weixin.qq.com/s/i0bMh_gLLrdnhAEWlF-xDw原创 2018-11-22 18:14:20 · 2027 阅读 · 0 评论 -
MySQL 分区建索引
介绍mysql分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张独立的表,从“information_schema.INNODB_SYS_TABLES”系统表可以看到每个分区都存在独立的TABLE_ID,由于Innodb数据和索引都是保存在".ibd"文件当中(从INNODB_SYS_INDEXES系统表中也可以得到每个索引都是对应各自的分区(primary key和uniq...原创 2018-11-29 15:04:40 · 460 阅读 · 0 评论 -
Linux三剑客之awk命令
https://www.cnblogs.com/ginvip/p/6352157.html转载 2018-11-30 16:10:46 · 74 阅读 · 0 评论 -
grpc报错
1.消息体太小error: “grpc: received message larger than max (6115095 vs. 4194304)”message: “grpc: received message larger than max (6115095 vs. 4194304)”s := grpc.NewServer(grpc.MaxMsgSize(size), grpc.Ma...原创 2018-11-30 19:28:13 · 3017 阅读 · 0 评论 -
ID生成器方案
Snowflake算法百度的:https://github.com/baidu/uid-generator/blob/master/README.zh_cn.mdsony的;https://github.com/sony/sonyflake其他:https://github.com/bwmarrin/snowflake原创 2018-11-28 12:07:56 · 597 阅读 · 0 评论 -
Go 2.0终于要来了!
Go Language 2.0 终于要来了!早在今年8月份,Go团队便提出了2.0版本的设计草案,包括两大主题:错误处理和泛型。而今天,团队开发人员发话了:“是时候采取行动了!”Go 1和Go 2主要的区别在于决策的制定——Go 1的诞生是一个小团队的努力,而Go 2将更受其社区的影响。目前在Go 2的提案中,大约有120个未解决的问题被标记为Go 2的提案,每一个问题都与重要的库或语言更改...原创 2018-12-06 12:23:23 · 509 阅读 · 0 评论 -
timestamp字段的“诡异”规则
有同学说timestamp字段的规则比较“诡异”。手册里面说的比较复杂,这里简单说明一下MySQL中 timestamp字段的一些规则。分为两部分定义规则:1、 timestamp字段有三个属性:a) 是否允许NULL。默认为not null。b) 默认值。可以设定为default CURRENT_TIMESTAMP 或default 某个常量。...原创 2018-12-13 10:24:57 · 333 阅读 · 0 评论 -
分享一个日志系统
https://github.com/uber-go/zap原创 2018-12-06 15:34:02 · 118 阅读 · 0 评论 -
五大常用算法
https://www.cnblogs.com/xsyfl/p/6921687.html原创 2018-12-13 15:39:59 · 154 阅读 · 0 评论 -
五大常用算法总结
引言据说有人归纳了计算机的五大常用算法,它们是贪婪算法,动态规划算法,分治算法,回溯算法以及分支限界算法。虽然不知道为何要将这五个算法归为最常用的算法,但是毫无疑问,这五个算法是有很多应用场景的,最优化问题大多可以利用这些算法解决。算法的本质就是解决问题。当数据量比较小时,其实根本就不需要什么算法,写一些for循环完全就可以很快速的搞定了,但是当数据量比较大,场景比较复杂的时候,编写for循环就...转载 2018-12-13 15:54:08 · 175 阅读 · 0 评论 -
为什么hashtable被弃用了
作者Hashtable的作者:HashMap的作者:Hash Map的作者比Hashtable的作者多了著名顶顶的并发大神Doug Lea。他写了util.concurrent包。著有并发编程圣经Concurrent Programming in Java: Design Principles and Patterns 一书。他的个人主页: http://g.oswego.edu/Jo...原创 2018-12-13 16:46:01 · 4856 阅读 · 3 评论 -
九大排序算法
https://blog.csdn.net/foreverling/article/details/43798223转载 2018-12-13 18:26:53 · 188 阅读 · 0 评论 -
Golang精编100题-搞定golang面试
https://blog.csdn.net/itcastcpp/article/details/80462619转载 2018-11-19 14:14:53 · 853 阅读 · 0 评论 -
Go语言中range的简介
for range创建了每个元素的副本,而不是直接返回每个元素的引用,如果使用该值变量的地址作为指向每个元素的指针,就会导致错误,在迭代时,返回的变量是一个迭代过程中根据切片依次赋值的新变量,所以值的地址总是相同的,导致结果不如预期。可以看到每次循环在map中插入新的内容后,map的长度确实发生了变化,但是循环只执行了三次,正好是执行range前map的长度。说明range在执行之初就构建好...原创 2018-11-16 17:41:36 · 1012 阅读 · 0 评论 -
Golang(Go语言)内置函数之append
append主要用于给某个切片(slice)追加元素如果该切片存储空间(cap)足够,就直接追加,长度(len)变长;如果空间不足,就会重新开辟内存,并将之前的元素和新的元素一同拷贝进去第一个参数为切片,后面是该切片存储元素类型的可变参数slice := append([]int{1,2,3},[]int{4,5,6}...)fmt.Println(slice) //[1 2 3 4 5...原创 2018-11-20 17:10:19 · 953 阅读 · 0 评论 -
Go语言操作redis redigo
package mainimport ( "fmt" "github.com/garyburd/redigo/redis")var EventConfs = map[string]int{ "blacklistSensitivity": 2, //"黑名单人脸识别灵敏度 1-宽松 2-常规 3-严格 "discoveryAutoEnroll&a原创 2018-11-09 14:28:26 · 651 阅读 · 0 评论 -
nsq
nsqd -http-address -max-body-size -tcp-address -mem-queue-sizecurl -d 'hello world 2' 'http://127.0.0.1:4151/pub?topic=test'nsqd 默认tcp 4150 http 4151nsqadmin.exe -nsqd-http-address=127.0.0.1:41...原创 2018-11-09 14:28:41 · 215 阅读 · 0 评论 -
Golang context 包简介
概述Golang 的 context Package 提供了一种简洁又强大方式来管理 goroutine 的生命周期,同时提供了一种 Requst-Scope K-V Store。但是对于新手来说,Context 的概念不算非常的直观,这篇文章来带领大家了解一下 Context 包的基本作用和使用方法。Context 基本数据结构Context interfaceContext int...原创 2018-11-09 16:57:30 · 330 阅读 · 0 评论 -
Go语言中map的使用
常用方式创建map// 先声明map 再使用make函数创建一个非nil的map,nil map不能赋值var m1 map[string]stringm1 = make(map[string]string)// 最后给已声明的map赋值m1["a"] = "aa"m1["b"] = "bb&quot原创 2018-11-08 16:48:58 · 224 阅读 · 0 评论 -
Go语言中channel的使用
channel创建双向通道ch1:=make(chan int,10)//创建传输int类型的双向通道,缓冲10个readData:=<-ch1//读通道,读空通道会阻塞,通道关闭可以继续读writerData:=1ch1<-writerData //写通道,写满阻塞,通道关闭写会引发panic异常单向通道readonlyCh:=make(<-chan int//...原创 2018-11-08 17:26:48 · 298 阅读 · 0 评论 -
Go语言操作excel
图片存储,excel表格安装dpi为120保存的dpi:每英寸占用的像素个数举例: 本地图片 像素为500,dpi为96, 以计算单位为基准 在excel中的像素就是 (500/96*120),保证计算单位相同。1英寸=像素/dpi 1磅=(像素-7)/91字符=像素*0.61英寸=2.54cm1厘米(cm)= 0.394英寸(in)行高 单位(磅)列宽 单位(字符)...原创 2018-11-08 17:35:30 · 1377 阅读 · 0 评论 -
Go语言time包
func main(){ /*预定义的时间格式*/ t1:=time.Now().Format(time.RFC3339) fmt.Println("t1:",t1) if t,err:=time.Parse(time.RFC3339,t1);err!=nil{ fmt.Println("parse:",err) }else{ fmt.Println("t2:",t.String...原创 2018-11-08 17:38:44 · 370 阅读 · 0 评论 -
Go语言的定时器timer包
package mainimport ( "fmt" "time")func main(){ ticker:=time.NewTicker(time.Second*3) go func() { for now := range ticker.C { fmt.Printf("%v\n", now) } }() ticker.Stop() t2:=tim...原创 2018-11-08 17:40:17 · 265 阅读 · 0 评论 -
Go语言操作mysql的第三方包 gorm
初始化 gorm.Open返回的是连接池 如下方法可以做连接池配置: db.DB().SetMaxIdleConns(10) db.DB().SetMaxOpenConns(100)argsStr :="root:123456@tcp(10.58.17.238:3306)/wz?charset=utf8&parseTime=True&loc=Local"db, e...原创 2018-11-08 17:43:15 · 2365 阅读 · 1 评论 -
Go语言字符串操作
//求绝对值func CalcAbs(a int) (ret int) { ret = (a ^ a>>31) - a>>31 return}input := []byte("hello golang base64")// 演示base64编码encodeString := base64.StdEncoding.EncodeToString(input)...原创 2018-11-08 17:44:00 · 136 阅读 · 0 评论 -
Go语言常用代码
1.并发var waitGroup = new(sync.WaitGroup)waitGroup.Add(num)waitGroup.Wait()func xxx(){ ... waitGroup.Done()}2.打印代码处理时间func TimeCost(str string, start time.Time) { terminal := time.Since(start...原创 2018-11-08 17:44:58 · 389 阅读 · 0 评论 -
Go语言的100个常识
1 channel实现CSP模型2 内存分配:tcmalloc3 动态库buildmode功能???4 缺乏真正意义上的调试器吗???5 依赖包管理问题???6 编译器将未使用的局部变量定义当作错误7 函数可以返回函数类型func test() func(int) { return func(x int) { println("x:", x) }}8 defer定义延迟调用...原创 2018-11-08 17:46:29 · 225 阅读 · 0 评论 -
设计模式总结
-AbstractFactory.go : 抽象工厂模式(C)使用场景:一个对象族(或是一组没有任何关系的对象)都有相同的约束。涉及不同操作系统的时候,都可以考虑使用抽象工厂模式 -Adapter.go : 适配器模式(J)使用场景:你有动机修改一个已经投产中的接口时,适配器模式可能是最适合你的模式。比如系统扩展了,需要使用一个已有或新建立的类,但这个类又不符合系统的接口,怎么...原创 2018-11-09 14:28:49 · 98 阅读 · 0 评论 -
Golang(Go语言)内置函数之copy用法
Golang(Go语言)内置函数之copy用法该函数主要是切片(slice)的拷贝,不支持数组将第二个slice里的元素拷贝到第一个slice里,拷贝的长度为两个slice中长度较小的长度值示例:s := []int{1,2,3}fmt.Println(s) //[1 2 3]copy(s,[]int{4,5,6,7,8,9})fmt.Println(s) //[4 5 6]有一种...原创 2018-11-20 17:08:02 · 1372 阅读 · 0 评论 -
给你一个字符串,写出所有可能的ip
package mainimport ( "fmt" "os" "strconv")func getip(source string) (ips []string) { length := len(source) if length > 12 || length < 4 { return nil } i...原创 2018-12-10 15:40:56 · 2074 阅读 · 0 评论