ICacheQueryBase type ICacheQueryBase interface { GetCacheKey() string } CacheMiddleware package entity_cache import ( "encoding/json" "errors" "github.com/coocood/freecache" "reflect" ) ty
channel有缓冲与无缓冲同步问题 package main import ( "fmt" "time" ) func main() { c := make(chan int, 3) //带有缓冲的channel fmt.Println("len(c) = ", len(c), ", cap(c)", cap(c)) go func() { defer fmt.Print
概念 在Go语言中,几乎所有的数据结构都围绕接口展开,接口是Go语言中所有数据结构的核心。在实际开发过程中,无论是实现 web 应用程序,还是控制台输入输出,又或者是网络操作,都不可避免的会遇到 I/O 操作。 Go语言标准库的 bufio 包中,实现了对数据 I/O 接口的缓冲功能。这些功能封装于接
什么是单元测试(unit testing) 单元测试,是指对软件中的最小可测试单元进行检查和验证 单元就是人为规定的最小的被测功能模块 一般来说,要根据实际情况去判定其具体含义,如 C 语言中单元指一个函数,Go 里面也单元也是一个函数 单元测试是在软件开发过程中要进行的最低级别的测试活动,
GO基础语法 方法或函数调用时,传入参数一般都是值复制,除非是map、slice、channel、指针类型是引用传递 短的变量声明(Short Variable Declarations),即自动推导,只能在函数内部使用 字符串与[]byte之间的转换是复制(有内存消耗),使用range来避免内存分配来提高性能 使用for range
go语言json文件的读写操作 JSON 是一种使用 UTF-8 编码的纯文本格式,采用完全独立于语言的文本格式,由于写起来比 XML 格式方便,并且更为紧凑,同时所需的处理时间也更少,致使 JSON 格式越来越流行,特别是在通过网络连接传送数据方面。 开发人员可以使用 JSON 传输简单的字符串、数字、布
常量基础篇 ✏️ 博客部分内容是观看李文周老师的视频记录的笔记,部分是学习极客时间博客专栏做的笔记。 常量定义了之后就不能修改了,程序运行期间不能改变。常量一般定义在程序开头,不写在程序尾部。 1. 原始定义 const pai = 3.1415926 2. 多个常量同时定义 const ( statusok
1. 变量 在编程语言中,为了方便操作内存特定位置的数据,我们用一个特定的名字与位于特定位置的内存块绑定在一起,这个名字被称为变量。但这并不代表我们可以通过变量随意引用或修改内存,变量所绑定的内存区域是要有一个明确的边界的。也就是说,通过这样一个变量,我们究竟可以操作 4 个字
实现一个可扩展的,简易的,分布式对象存储系统 存储系统介绍 先谈谈传统的网络存储,传统的网络存储主要分为两类: NAS,即Newtwork Attached Storage,是一个提供了存储功能和文件系统的网络服务器,客户端可以访问NAS上的文件系统,可以上传和下载文件,NAS客户端和服务端之间使用的协议有SMB、
Go中的包 Go中的包的介绍和定义 包(package)是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmt、strconv、strings、sort、errors、time、encoding/json、os、io等。 Golang中的包可以分为三种:1、系统内置包 2、自定义包 3、第三方包 系统内置包:Go
Go中的接口 接口的介绍 现实生活中手机、相机、U盘都可以和电脑的USB接口建立连接。我们不需要关注usb卡槽大小是否一样,因为所有的USB接口都是按照统一的标准来设计的。 Golang中的接口是一种抽象数据类型,Golang中接口定义了对象的行为规范,只定义规范不实现。接口中定义的规范由
原文:https://blog.csdn.net/tuobicui6522/article/details/102980653 swag命令安装: go install github.com/swaggo/swag/cmd/swag@latest swag命令对应的github库:https://github.com/swaggo/swag 用yapi在线调用接口测试 aaa -----------
[]btye 可以直接转换成 string, 但是如果有使用到 split函数的需求, 然后再 str := string([]string{}), go不支持这样的强转. 参考博客: Golang字符切片转字符串 不过go的底层帮你做了封装, 使用 strings包里面的Join函数就可以实现 Split的逆过程.
Go语言方法 两种接收者 Go语言方法有他的接收者,如下代码 package main import "fmt" type A struct { name string } func (a A) Name() string { a.name = "hi" + a.name return a.name } func main() { a := A{ name:"ymk", } fmt.Println(a.Name()) f
Go errors All In One sh: gin: command not found zsh go path $ echo $GOPATH $ echo $PATH | grep $GOPATH https://github.com/codegangsta/gin/issues/114 $ code .zshrc $ source ~/.zshrc https://stackoverflow.com/questions/53665895/tried-to-install-gol
面试过程 半个月之前,我又一次结束了字节的日常实习面试,前后持续一个多星期,每一面都是2天内出结果,第四面一周未出结果,询问hr,面试流程已经终止,是的,又挂了。 相比于几个月的那次面试,挂在第三面;这次第三面是hr面,因此挂在了第四面,在算法题每轮都完成的基础上,猜测因为基础知识掌握不熟
Go可以开发Windows的客户端程序,也可以开发Linux服务端程序,如果想使用加密狗对程序做保护,可以使用深盾的精锐5加密锁。 精锐5加密锁 GO 程序加密 GO开发的程序是本地Native程序,windows环境编译成exe、dll,Linux环境则可以编译成so或者可执行程序,使用精锐5加密锁配套的VirboxProt
golang运行grpc示例项目报错: exec: "C:\Users\User\AppData\Local\Temp\go-build4227870276\b001\exe\server": file does not exist 文件找不到,经过排查,发现是编译的文件存在问题。 运行 go env GOOS=linux,更改为GOOS=windows 执行命令 go env -w GOOS=windows 再次执行 go env
可以通过关键字和时间间隔进行查询,关键字可以像kibana上的查询语句填写,代码搞起 //搜索返回的内容 type Result struct { Message string `json:"message"` Source string `json:"source"` //Host string `json:"host"` } type SearchEs struct { } func NewSearchEs() *S
1.Dockerfile FROM alpine:3.16.2 COPY go1.17.linux-amd64.tar.gz /go/go1.17.linux-amd64.tar.gz RUN tar -zxvf /go/go1.17.linux-amd64.tar.gz ENV GOPATH=/go ENV PATH=$PATH:$GOPATH/bin 2.打包镜像 docker build -t alpine:3.16.2-go1.17 . 3.进入容器,验证环境 doc
资源来自:https://blog.csdn.net/DXB2021/article/details/122652779 结体体定义如下: type author struct{ field1 type1 field2 type2 ... } 结构体的定义格式如下: type 类型名 struct{ 字段1 字段1类型 字段2 字段2类型 …… } 基本实例化格式如下: var ins T T为结构体类型。 ins
beego 2.0开始使用注解路由,然而请求一直404 发现是少了routers/commentsRouter.go 官方文档 https://beego.vip/docs/mvc/controller/router.md 但并未说明还可以通过命令执行生成 可以通过命令生成路由文件 bee generate routers
前言 熟悉我的朋友可能知道,我从18年开始尝试的写一些文字记录一些东西;最开始我是在CSDN上进行创作,后面由于实在忍受不了CSDN上面各种商业化产品转战到博客园。 由于之前一直都忙于工作和其它生活上面的事情,并没有太多的文章产出,经过这么些年的沉淀,今年终于有一点点空余的时间来写
前言 大半个月前我参与了字节后端面试,未通过第四面,面试总结写在了这篇文章: https://juejin.cn/post/7132712873351970823 在此文的末尾,我写到为了全面回顾Go的知识点,我开始阅读《The Go Programing Language》,这是我接触Go以来第一次阅读英文书籍。并且希望将学习的笔记其整理成册
示例demo52 package main import ( "fmt" ) func calc(taskChan chan int, resChan chan int, exitChan chan bool) { for v := range taskChan { flag := true for i := 2; i < v; i++ { if v%i ==