
go
文章平均质量分 59
ziggy7
这个作者很懒,什么都没留下…
展开
-
Gee cache
相关概念分布式缓存GeeCache特性●单机缓存和基于 HTTP 的分布式缓存●最近最少访问(Least Recently Used, LRU) 缓存策略●使用 Go 锁机制防止缓存击穿●使用一致性哈希选择节点,实现负载均衡●使用 protobuf 优化节点间二进制通信1.LRUmap和双向链表实现...原创 2021-09-20 17:04:30 · 496 阅读 · 0 评论 -
go自动化测试、覆盖率
整理自https://liumiaocn.blog.youkuaiyun.com/article/details/54922394go程序测试例子自动化测试basicfunc.gopackage basicfuncfunc GetGrade(score int) string { switch { case score < 60: return "D" case score <= 70: return "C" case score <= 80: return "B"原创 2021-05-31 20:01:33 · 694 阅读 · 0 评论 -
go select多路复用
select语法select {case <-ch1: // ...case x := <-ch2: // ...use x...case ch3 <- y: // ...default: // ...}例1:火箭点火火箭点火倒计时10秒,如果键盘输入任意字符就打断点火,如果没有就10s后起飞。package mainimport ( "fmt" "os" "time")func main() { abort := ma原创 2021-05-22 17:08:26 · 384 阅读 · 1 评论 -
go并发循环
并发打印●错误代码这个代码不会打印任何东西,因为main没等到pnt返回就直接返回了package mainimport ( "fmt" "time")func pnt() { time.Sleep(2 * time.Second) fmt.Println("hello world!!!")}func main() { for i := 0; i < 5; i++ { go pnt() }}●正确代码让5个goroutine向共享的channel中发送事件原创 2021-05-17 16:58:59 · 524 阅读 · 0 评论 -
三、go语言函数、方法、接口(go语言圣经笔记)
函数声明func name(parameter-list) (result-list){ body}递归多返回值语法// 用逗号隔开return a, bbase return如果返回值变量名在函数体内出现,return可以省略操作数。错误Go使用if和return处理异常,出现异常就返回函数值函数拥有类型,可以被赋值给其他变量,函数类型的0值是nil,不能调用值为nil的函数匿名函数5.6可变参数5.7deferred函数defer后面的函数会被延迟执行。直到原创 2021-05-17 15:15:20 · 332 阅读 · 0 评论 -
Goroutines和Channels
goroutine可以简单类比作一个线程main goroutine当一个程序启动时,其主函数即在一个单独的goroutine中运行,我们叫它main goroutine。创建新goroutine新的goroutine会用go语句来创建。f() // call f(); wait for it to returngo f() // create a new goroutine that calls f(); don't wait并发的Clock服务去掉go只能一个客户端接收到时间,原创 2021-05-17 15:15:07 · 144 阅读 · 0 评论 -
二、go语言数据类型(go语言圣经笔记)
基础类型整型int、int8、int16、int32、int64uint、uint8、uint16、uint32、uint64uintptr:容纳指针浮点数float32:6个十进制的精度float64:15个十进制数的精度复数complex64、complex128对应float32和float64两种浮点数精度布尔型true和false字符串不可改变的字节序列s[i]返回第i字节的字节值,越界会出现异常s[i:j]:以s中[i:j)生成的新字符串,i不写就为0,j不写就为l原创 2021-05-04 14:54:29 · 179 阅读 · 0 评论 -
一、go语言基本语法与概念(go语言圣经笔记)
hello world// 表示该文件属于哪个包package main// 导入包import "fmt"func main() { fmt.Println("Hello, 世界")}基本语法命名小写字母开头,驼峰式命名,区分大小写(大写字母用于导出)声明变量语法// var 变量名字 类型 = 表达式s := "" // 简短声明:类型自动推导,要用:= 简短变量声明语句中必须至少要声明一个新的变量var s stringvar s = ""va原创 2021-05-03 20:37:56 · 266 阅读 · 1 评论 -
vscode go环境配置(GOPROXY两行代码解决)
解决vscode无法下载go插件问题:在cmd输入下面两行代码,输完后可以通过go env来查看是否成功go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.cn在vscode中使用Ctrl+Shift+P,输入>go:install,下面会自动搜索相关命令,我们选择Go:Install/Update Tools这个命令,选中所有插件,点击确定进行安装。(2021/4/26亲测可行)...原创 2021-04-26 22:18:41 · 1449 阅读 · 0 评论