Golang学习笔记之延迟函数(defer)的使用小结

golang的defer优雅又简洁, 是golang的亮点之一。defer在声明时不会立即执行,而是在函数return后,再按照先进后出的原则依次执行每个defer,一般用于释放资源、清理数据、记录日志...

Go语言下载网络图片或文件的方法示例

最近闲来无事, 于是就简单学习了下Go语言的基本的用法。由于实践才是最快的学习方法,所以这里就以下载网络图片或文件入手来学习Go语言
文件下载到本地,通常的思路就是先获得网...

详解Golang中下划线的使用方法

在 Golang 里, _ (下划线)是个特殊的标识符。前几天看 gin 源码,看到一个有意思的用法。虽然网上的总结博客已有很多,但是总是有点欠缺,于是就有了这一篇,方便以后查阅。用在 impor...

GOLANG使用Context管理关联goroutine的方法

一般一个业务很少不用到goroutine的,因为很多方法是需要等待的,例如http.Server.ListenAndServe这个就是等待的,除非关闭了Server或Listener,否则是不会返回的。除非是一个API服...

golang顺时针打印矩阵的方法示例

题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12...

golang bad file descriptor问题的解决方法

发现问题在golang中,对文件进行写操作时出现上面的错误。首先复现下这个问题。package mainimport ( "os" "fmt")func main() { file, err := os.Open("a.txt") if err != ni...

基于go手动写个转发代理服务的代码实现

由于公司经常需要异地办公,在调试的时候需要用到内网环境,因此手动写了个代理转发服务器給兄弟们用:socks5proxy。选型上,语言上就选择了Go,简单清晰,转发协议选择了socks5。SOCKS...

Go语言range关键字循环时的坑

关键字range可用于循环,类似迭代器操作,它可以遍历slice,array,string,map和channel,然后返回索引或值。可以使用”_”来忽略不想要的返回值。可以方便的读取上面类型中的内容,...

Golang中如何对MySQL进行操作详解

前言Golang官方并没有提供数据库驱动,但通过database/sql/driver包来提供了实现驱动的标准接口。可以在Github上找到很多开源的驱动。
其中go-sql-driver/mysql是一个比较推...

golang 并发安全Map以及分段锁的实现方法

涉及概念 并发安全Map 分段锁 sync.Map CAS ( Compare And Swap ) 双检查分断锁type SimpleCache struct { mu sync.RWMutex items map[interface{}]*simpleItem}在...

简单谈谈Golang中的字符串与字节数组

前言字符串是 Go 语言中最常用的基础数据类型之一,虽然字符串往往都被看做是一个整体,但是实际上字符串是一片连续的内存空间,我们也可以将它理解成一个由字符组成的数组,Go 语...

golang如何使用struct的tag属性的详细介绍

从一个例子说起我们经常会碰到下面格式的struct定义:type Person struct { Name string `json:"name"` Age int `json:"age"`}这个struct定义一个叫做Person的类型,包含两...

golang解析域名的步骤全纪录

最近遇到了一个问题。我们的kube-apiserver配置了OIDC认证,OIDC issuer是添加了dns server记录的,但由于某些原因,我需要覆盖掉dns server的解析,改用hostAlias的IP地址,但是实测...

golang实现LRU缓存淘汰算法的示例代码

LRU缓存淘汰算法
LRU是最近最少使用策略的缩写,是根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。双向链表实现LRU...

Go routine调度详解

goroutine简介goroutine是go语言中最为NB的设计,也是其魅力所在,goroutine的本质是协程,是实现并行计算的核心。goroutine使用方式非常的简单,只需使用go关键字即可启动一个协程...

GOLANG使用Context实现传值、超时和取消的方法

GO1.7之后,新增了context.Context这个package,实现goroutine的管理。Context基本的用法参考GOLANG使用Context管理关联goroutine。实际上,Context还有个非常重要的作用,就是设置...

golang实现跨域访问的方法

前端通过Ajax来获取服务器资源时,会存在跨域问题。因为Ajax只能同源使用(预防某些恶意行为),所以当访问不在同一个域中的资源时,就会出现跨域限制。尤其在开发和测试时,跨域问题会...

go实现文件的创建、删除与读取示例代码

文件目录的创建和删除
package mainimport( "fmt" "os")func main(){ //创建目录和权限 os.Mkdir("./benben",0777) //创建多级目录和设置权限 os.MkdirAll("./benben/test"...

详解Golang 推荐的命名规范

Golang 推荐的命名规范
很少见人总结一些命名规范,也可能是笔者孤陋寡闻, 作为一个两年的golang 开发者, 我根据很多知名的项目,如 moby, kubernetess 等总结了一些常见的命名规...

Golang Mongodb模糊查询的使用示例

前言在日常使用的Mongodb中,有一项功能叫做模糊查询(使用正则匹配),例如:db.article.find({"title": {$regex: /a/, $options: "im"}})这是我们常用Mongodb的命令行使用的方式,但...

golang高并发的深入理解

前言
GO语言在WEB开发领域中的使用越来越广泛,Hired 发布的《2019 软件工程师状态》报告中指出,具有 Go 经验的候选人是迄今为止最具吸引力的。平均每位求职者会收到9 份面试...

Golang 日期/时间包的使用详解

golang 的日期时间包:time 的使用方式。 time package 包含了 time.Time 时间对象 及 构建此时间对象的一些方法(time.Unix(), time.Parse()) golang 可精确到 nanosecond,...

Go语言中strings和strconv包示例代码详解

前缀和后缀HasPrefix判断字符串s是否以prefix开头:
strings.HaxPrefix(s string, prefix string) bool示例:
package mainimport ( "fmt" "strings")func main() { pre :...

golang分层测试之http接口测试入门教程

前言
前几话主要讲解关于使用golang进行单元测试,在单元测试的上一层就是接口测试,本节主要讲使用golang进行接口测试,其中主要以http协议的接口测试来讲解
golang中的http请求...

golang如何使用sarama访问kafka

下面一个客户端代码例子访问kafka服务器,来发送和接受消息。使用方式1、命令行参数
$ ./kafkaclient -hUsage of ./client: -ca string CA Certificate (default "ca.pem")...

返回顶部
顶部