Go
大白话讲讲 Go 语言的 sync.Map(一)
阅读本文大约需要 4.25 分钟。 程序是枯燥乏味的。 在讲 sync.Map 之前,我们先说说什么是 map(映射)。 我们每个人都有身份证号码,如果我需要从身份证号码查到对应的姓名,用 map 存储是非常合适的。 map[000...001] = 张三 map[000...002] = 李四 . ......
debug go fuzz test
List all package go list ./... Run testcase dlv test --build-flags='api/tests/fuzz' -- -test.run ^FuzzGetNodes$ dlv test api/tests/fuzz -- -test.run F ......
go基于docker sdk用dockerfile构建镜像
测试了好久,发现,单独读取dockerfile文件,然后上传,是无法构建成功的 构建的时候总会报无法找到dockerfile文件 `Error response from daemon: Cannot locate specified Dockerfile: Dockerfile` 查资料发现需要将 ......
go语言操作docker删除所有停止的容器
逻辑是通过过滤器,过滤掉,状态为exited的容器,然后再遍历删除 代码部分 ```go package main import ( "context" "fmt" "os" "github.com/docker/docker/api/types" "github.com/docker/docker ......
go通过docker sdk进入容器执行命令
代码部分 ```go package main import ( "context" "fmt" "io" "os" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { // 设 ......
go语言操作docker重启容器
代码部分 ```go package main import ( "context" "fmt" "os" "github.com/docker/docker/api/types/container" "github.com/docker/docker/client" ) func main() { ......
go语言操作docker删除容器
代码部分 ```go package main import ( "context" "fmt" "os" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { // 设置远程Do ......
关于go语言常量的那些事
相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。 常量的声明和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。 const 常量名[数据类型] = value 项目实战常见场景 数据类型可以忽略不写,Golang 编译器会⾃动推断出数据类型。 在使⽤ ......
go语言操作docker创建容器
开启远程api的方式 https://www.cnblogs.com/guangdelw/p/17562539.html 代码部分 ```go package main import ( "context" "fmt" "os" "github.com/docker/docker/api/types ......
go 单链表的增加,删除,翻转
package main import "fmt" //单链的数据结构 type Node struct { value int next *Node } type List struct { head *Node } //添加成有序的链表 //1.如果是空链表则插入链表第一个元素 //2.升序插入 ......
我是如何组织 Go 代码的(目录结构 依赖注入 wire)
## 背景 对于大多数 Gopher 来说,编写 Go 程序会直接在目录建立 main.go,xxx.go,yyy.go…… 不是说不好,对于小型工程来说,简单反而简洁明了,我也提倡小工程没必要整一些花里胡哨的东西。 毕竟 Go 语言作为现代微服务的开发新宠,各个方面都比较自由,没有很多约束。我想, ......
go通过API的方式操作docker
# 配置docker支持远程操作API 在Linux系统上启用Docker远程使用Docker API的步骤 ## 1、编辑Docker配置文件 打开Docker配置文件,通常位于/etc/docker/daemon.json。如果该文件不存在,则创建它。 ```bash vim /etc/dock ......
go语言读取docker容器的日志
# 使用Docker SDK: 要使用Docker SDK来读取Docker容器的日志,您需要安装Docker SDK并使用其提供的函数进行操作。 ## 安装Docker SDK: ```bash go get -u github.com/docker/docker ``` ## 获取容器ID `` ......
go语言中动态读取日志
```go package main //tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端, //通俗讲来,就是把某个档案文件的最后几行显示到终端上,假设该档案有更新,tail会自己主动刷新,确保你看到最新的档案内容 ,在日志收集中可以实时的监测日志的变化,Log需要换行才 ......
Go语言实现23种设计模式
## 摘要 设计模式是一套被广泛应用于软件开发中的解决问题的经验总结,它可以帮助开发人员设计出更加灵活、可维护和可扩展的代码。本文将探讨使用设计模式的好处,并对常见的设计模式进行分类和介绍。此外,我们还将提供设计模式的相关链接,以便读者深入了解各个设计模式的细节和实例。最后,我们将探讨如何学习设计模 ......
GO语言调试利器dlv快速上手
GO语言调试利器dlv快速上手 golang 安装 tar -xvf go1.15.2.linux-arm64.tar.gz -C /usr/local/go [root@centos7 ~]# ls /usr/local/go go [root@centos7 ~]# ls /usr/local/ ......
Go 标准库net/url
# URL 概述 ```go import "net/url" ``` url 包解析 URL 并实现了查询的转码。 URL 提供了一种定位因特网上任意资源的手段,但这些资源是可以通过各种不同的方案(比如 HTTP 、 FTP 、 SMTP )来访问,因此 URL 语法会随着方案的不同而不同。 完整 ......
go中http客户端设置当响应码为3xx时禁止自动跳转
通常在http客户端请求的时候,如果遇到响应码为3XX,并且header中也有 `Location` 字段时,go的 `net/http` 库会自动完成跳转 但是现实场景是,有时咱们需要对跳转前的数据做处理,然后再手动跳转 这个时候该怎么办呢? 在Go中,可以通过自定义http.Client的Che ......
解决go中http客户端请求遇到tls: server selected unsupported protocol version 301错误
在发起请求的时候,咱们有时会遇到类似 `tls: server selected unsupported protocol version 301` 的错误 # 分析问题 这个报错是由于这个服务只支持低版本的tls协议。 TLS(Transport Layer Security)是一种用于加密和保护 ......
go中http设置忽略证书
在Go中,可以通过设置 `http.Client` 的 `Transport`属性来忽略证书验证。 默认情况下,`http.DefaultClient` 使用的是 `http.DefaultTransport` ,它对证书进行了验证。 但是你可以创建一个自定义的 `Transport` 并将其用作客 ......
go中http如何解决跳转自动携带cookie的问题
在Go中,可以使用net/http包来进行HTTP请求,并通过设置一个Client的Jar属性来自动处理HTTP响应中的Cookie。 ```go package main import ( "fmt" "net/http" "net/http/cookiejar" ) func main() { ......
读 Go 源码,可以试试这个工具
编程发展至今,从面向过程到面向对象,再到现在的面向框架。写代码变成了一件越来越容易的事情。 学习基础语法,看看框架文档,几天时间搞出一个小项目并不是一件很难的事情。 但时间长了就会发现,一直这样飘在表面是不行的,技术永远得不到提升。 想要技术水平有一个质的飞跃,有一个很好的方法,就是读源码。 但读源 ......
常用语言的线程模型(Java、go、C++、python3)
了解一下线程模型还是很有必要的,如果不清楚语言层面上的线程在操作系统层面怎么映射使用,在使用过程中就会不清不楚,可能会踩一些坑 ......
GoLand中使用PlantUML生成Go UML图,使用go-callvis生成Go 调用关系图
1.在goland IDE中安装plantuml插件2.安装go-package-plantuml工具go get --insecure gitee.com/jscode/go-package-plantuml.git修改go-package-plantuml代码支持outputfileif opt ......
kafka-es.go
package es import ( "context" "encoding/json" "fmt" "kafka/mongo" "log" "os" "github.com/olivere/elastic" ) var client *elastic.Client var host = "htt ......
kafka-mongo.go
package mongo import ( "context" "fmt" "log" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo ......
VSCode - go error: gopls was not able to find modules in your workspace
gopls was not able to find modules in your workspace. When outside of GOPATH, gopls needs to know which modules you are working on. You can fix this b ......
java学go
数组和切片的区别? 数组是同一种数据类型元素的集合,数组在定义时需要指定长度和元素类型: 例如:[3]int [3]int{1,2,3} [...]int{1,2,3} 如果数组作为函数的参数,实际传递的是一份数组的拷贝,而不是数组的指针,在函数中修改数组元素不会影响到原始数组。 切片更加常用,它是 ......
go 时间错误
invalid operation: n * time.Second (mismatched types int and time.Duration) package main import "time" func main() { n := 1 time.Sleep(n * time.Second ......