随笔分类 -  go

go爱好
摘要:type RequestInfo struct { Url string Data map[string]string //post要传输的数据,必须key value必须都是string DataInterface map[string]interface{} } //适用于 applicatio 阅读全文
posted @ 2020-02-25 14:51 small_lei_it 阅读(5294) 评论(0) 推荐(0)
摘要:Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。 Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.goCGO_ENAB 阅读全文
posted @ 2020-02-20 17:25 small_lei_it 阅读(140) 评论(0) 推荐(0)
摘要:1. govendor简介 golang工程的依赖包经常使用go get命令来获取,例如:go get github.com/kardianos/govendor ,会将依赖包下载到GOPATH的路径下。 常用的依赖包管理工具有godep,govendor等,在Golang1.5之后,Go提供了 G 阅读全文
posted @ 2019-11-13 11:42 small_lei_it 阅读(555) 评论(0) 推荐(0)
摘要:场景描述 go get 下载第三方包golang gin框架时,会去下载gopkg.in/go-playground/validator.v8包以及gopkg.in/yaml.v2包,gopkg.in站点下的包都是中间包,最终的包代码是在github上,于是直接到github.com上去下载,对应的 阅读全文
posted @ 2019-11-08 17:34 small_lei_it 阅读(1334) 评论(0) 推荐(0)
摘要:在 Go语言程序运行时(runtime)实现了一个小型的任务调度器。这套调度器的工作原理类似于操作系统调度线程,Go 程序调度器可以高效地将 CPU 资源分配给每一个任务。传统逻辑中,开发者需要维护线程池中线程与 CPU 核心数量的对应关系。同样的,Go 地中也可以通过 runtime.GOMAXP 阅读全文
posted @ 2019-10-31 08:47 small_lei_it 阅读(607) 评论(0) 推荐(0)
摘要:布尔值: 整数: 浮点数与复数的两个组分: 阅读全文
posted @ 2019-10-11 16:29 small_lei_it 阅读(578) 评论(0) 推荐(0)
摘要:并发访问map是不安全的,会出现未定义行为,导致程序退出。所以如果希望在多协程中并发访问map,必须提供某种同步机制,一般情况下通过读写锁sync.RWMutex实现对map的并发访问控制,将map和sync.RWMutex封装一下,可以实现对map的安全并发访问,示例代码如下: package m 阅读全文
posted @ 2019-07-02 14:25 small_lei_it 阅读(613) 评论(0) 推荐(0)
摘要:原文地址讲解:https://blog.csdn.net/zl1zl2zl3/article/details/83374131 阅读全文
posted @ 2019-06-26 20:22 small_lei_it 阅读(1617) 评论(0) 推荐(0)
摘要:package main; import ( "os" "os/signal" "fmt" ) //signal包中提供了两个函数 //Notifyf()用于监听信号 //Stop()用于停止监听 func main() { ch := make(chan os.Signal); //notify用 阅读全文
posted @ 2019-05-26 19:58 small_lei_it 阅读(1164) 评论(0) 推荐(0)
摘要:1、下载protobuf的编译器protoc 地址:https://github.com/google/protobuf/releases window: 下载: protoc-3.3.0-win32.zip 解压,把bin目录下的protoc.exe复制到GOPATH/bin下,GOPATH/bi 阅读全文
posted @ 2019-05-26 17:46 small_lei_it 阅读(7593) 评论(0) 推荐(0)
摘要:package main; import ( "sync/atomic" "fmt" "sync" ) //atomic包提供了底层的原子级内存操作 //类型共有六种:int32, int64, uint32, uint64, uintptr, unsafe.Pinter //操作共五种:增减, 比 阅读全文
posted @ 2019-05-26 15:47 small_lei_it 阅读(306) 评论(0) 推荐(0)
摘要:今天面试golang碰到了一道考并发和锁的题目,没有完成,所以把它记录下来,仅为以后复习。 场景:在一个高并发的web服务器中,要限制IP的频繁访问。现模拟100个IP同时并发访问服务器,每个IP要重复访问1000次。每个IP三分钟之内只能访问一次。修改以下代码完成该过程,要求能成功输出 succe 阅读全文
posted @ 2019-05-19 21:47 small_lei_it 阅读(749) 评论(0) 推荐(0)
摘要:golang中string底层是通过byte数组实现的。中文字符在unicode下占2个字节,在utf-8编码下占3个字节,而golang默认编码正好是utf-8。 golang中还有一个byte数据类型与rune相似,它们都是用来表示字符类型的变量类型。它们的不同在于: byte 等同于int8, 阅读全文
posted @ 2019-05-17 15:52 small_lei_it 阅读(578) 评论(0) 推荐(0)
摘要:package main; import ( "os" "os/signal" "fmt" ) //signal包中提供了两个函数 //Notifyf()用于监听信号 //Stop()用于停止监听 func main() { ch := make(chan os.Signal); //notify用 阅读全文
posted @ 2019-05-10 15:35 small_lei_it 阅读(1167) 评论(0) 推荐(0)
摘要:有一天,一个人问了我此问题,回头仔细翻阅了一下资料,仔细的想了一下,这个问题的解决有两种方案。方案一:也是推荐方案,也是官方推荐方案,涉及到一个写并发经常关注的模块sync模块,利用里面的sync.WaitGroup去做代码如下:package mainimport( "fmt" "sync" "t 阅读全文
posted @ 2019-05-10 15:05 small_lei_it 阅读(668) 评论(0) 推荐(0)
摘要:反射中调用函数 众所周知,golang中的函数是可以像普通的int、float等类型变量那样作为值的,例如: prints: 既然函数可以像普通的类型变量一样可以的话,那么在反射机制中就和不同的变量一样的,在反射中函数和方法的类型(Type)都是reflect.Func,如果要调用函数的话,可以通过 阅读全文
posted @ 2019-05-09 20:04 small_lei_it 阅读(5229) 评论(0) 推荐(0)
摘要:1、go的调度2、go struct能不能比较 因为是强类型语言,所以不同类型的结构不能作比较,但是同一类型的实例值是可以比较的,实例不可以比较,因为是指针类型 3、go defer(for defer),先进后出,后进先出 4、select可以用于什么,常用语gorotine的完美退出 golan 阅读全文
posted @ 2019-05-09 15:07 small_lei_it 阅读(235) 评论(0) 推荐(0)
摘要:inter 是interface类型,转化为string类型是: str := inter .(string) 转为其他类型也类似 阅读全文
posted @ 2019-04-17 16:41 small_lei_it 阅读(10384) 评论(0) 推荐(0)
摘要:总结了golang中字符串和各种int类型之间的相互转换方式: string转成int: int, err := strconv.Atoi(string)string转成int64: int64, err := strconv.ParseInt(string, 10, 64)int转成string: 阅读全文
posted @ 2019-04-12 10:31 small_lei_it 阅读(7809) 评论(0) 推荐(0)
摘要:创建集合set python set类是在python的sets模块中,大家现在使用的python2.7.x中,不需要导入sets模块可以直接创建集合。>>>set('boy')set(['y', 'b', 'o']) 集合添加、删除 python 集合的添加有两种常用方法,分别是add和updat 阅读全文
posted @ 2019-03-01 09:38 small_lei_it 阅读(195) 评论(0) 推荐(0)