switch go
go 循环链表
package main import ( "fmt" ) type Node struct{ Data int Next *Node } type CircularLinkedList struct { Head *Node Tail *Node } func NewCircularLinkedL ......
go语言log相关
log包 Go标准库中有log包,提供了简单的日志功能。 输出 格式输出 换行输出 解释 log.Print() log.Printf() log.Println() 类似fmt.Print* log.Fatal() log.Fatalf() log.Fatalln() 相当于log.Print* ......
go语言打包tar存档
功能介绍 + 可以多文件多文件夹混合打包 + 可以设置文件和文件夹黑白名单 + 可以打包成文件也可以打包成io.Reader类型数据 缺陷: 还是tar的特色,无法支持中文,所以中文打包会出现乱码,如果路径有中文,也无法打包文件,所以打包的文件或者文件夹尽量不要有中文 (有解决方法还请留言不吝指教, ......
windows 下 用go 监控进程
这里模拟QQ退出后自动重启 只要修改 processName 为你所需要的进程exe processNamePath 为你所需要的进程路径 package main import ( "bytes" "errors" "fmt" "os" "os/exec" "regexp" "strconv" " ......
Go:Missing type in composite literal
在使用含字符串数组的结构体时,我出现了以下问题 1 package main 2 3 import "github.com/gin-gonic/gin" 4 5 type MyJson struct { 6 Functions []string `json:"functions"` 7 Desc s ......
个人随笔 —— 基于 go 语言实现的轻量化 workflow 分布式引擎插件
# 背景 组内有很多项目都涉及复杂的任务流场景: * 集群创建、删除等生命周期管理 * k8s 资源申请销毁 * .... 这些场景都有几个共同的特点: 1. 流程耗时且步骤复杂,需要几十步操作,其中包含云资源申请、脚本执行、接口调用等,且相互存在依赖关系。 2. 任务量随着业务增长而快速迭代,比如 ......
GO语言配置管理神器-Viper中文教程
[Viper](https://github.com/spf13/viper)是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。 # Viper [Viper](https://github.com/spf13/viper)是适用于Go应用程 ......
go语言包管理
包 包由多个文件和目录组成 使用 package <包名> 来定义包名 包名一般都采用小写,符合标识符要求 当前目录名和 package <包名> 中的包名不需要一致,但最好保持一致 同级文件归属一个包,就是说每个包目录的当前目录中,只能统一使用同一个package的包名,否则编译出错 一般来说,开 ......
go 结构体嵌套interface
package main import "fmt" //结构体嵌套接口,可以在结构体绑定的方法直接实现接口中的方法,直接调用接口中的方法 type aa interface{ a() b() } type world struct{ aa Age int } func(h world)a(){ fm ......
大白话讲讲 Go 语言的 sync.Map(二)
上一篇文章 [《大白话讲讲 Go 语言的 sync.Map(一)》](https://imlht.com/archives/234/) 讲到 entry 数据结构,原因是 Go 语言标准库的 map 不是线程安全的,通过加一层抽象回避这个问题。 当一个 key 被删除的时候,比如李四销户了,以前要撕 ......
代码随想录 go语言
**Go的内存对齐:** 64位系统一般指的是寻址的大小,用2^64个地址,每个地址上面都有一个字大小的内存,一个字可以是1字节,2字节,4字节等等。CPU 始终以字长访问内存,如果一个变量存储在两个字中,那么CPU就需要寻址两次。所以内存对齐就是让变量尽量不要跨字存储。 ......
go-2
1.对Go的理解 它是一种编译型,并发型,拥有GC的编程。它不是面向对象语言,不具备封装,继承和多态,但是可以实现,通过interfance{}接口来实现多态性。 没有做异常处理,不能像java一样try...catch...,但是可以通过panic,defer和recover来处理。 其他语言的函 ......
go通过docker sdk来对容器资源做限制
# 创建容器时 ```go package main import ( "context" "fmt" "os" "github.com/docker/docker/api/types" "github.com/docker/docker/api/types/container" "github.c ......
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 sdk将容器中的文件或者文件夹复制到本地
第一步:需要创建docker客户端 第二步:将文件复制出来,但是复制出来的文件无论文件还是文件夹都会是tar存档的形式 第三步:解包 ```go package main import ( "archive/tar" "context" "fmt" "io" "os" "path/filepath" ......
go通过docker sdk访问复制文件到容器中
第一步:需要先判断容器中的文件夹是否存在 第二步:将需要拷贝的文件打包成tar存档 第三步:读取打包的tar存档,然后拷贝到容器中 ```go package main import ( "archive/tar" "context" "fmt" "io" "os" "path/filepath" ......
MIT 6.S081 Thread switching
Multiplexing xv6 通过将 cpu 从一个进程切换到另一个进程来实现 multiplex(多路复用),进程的切换会在两种情形下发生: xv6 的 sleep 与 wakeup 机制在进程等待 IO 完成或者等待子进程退出又或者在 sleep 系统调用中等待的时候切换进程。 xv6 会周 ......
go通过docker sdk操作镜像
# 获取所有镜像 ```go package main import ( "context" "fmt" "github.com/docker/docker/api/types" "github.com/docker/docker/client" ) func main() { // 设置远程Doc ......
GO 指针数据类型的使用
转载请注明出处: 在Go语言中,指针类型允许直接访问和修改某个变量的内存地址。通过使用指针,我们可以在函数之间共享数据或者在函数内部修改外部变量的值。 以下是关于Go语言指针类型的一些重要语法和示例: 定义指针变量: 使用*表示指针类型,并将其放置在变量类型前面。例如:var ptr *int声明了 ......
大白话讲讲 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` 查资料发现需要将 ......
switch case 中 case 后值有多个,或者是一个范围的编码方式
case low ... high : case 范围的行为就好像为从 low 到 high(包含边界值)的给定范围内的每个值指定了 case 标签。(如果 low 和 high 相等,则 case 范围仅指定一个值。)下限值和上限值必须符合 C 标准的要求,即它们必须是有效的整型常量表达式(C 标 ......
switch写法详解
我们在开发项目中经常遇到对数据的判断进行相应的逻辑(if..else ,三元运算等),Switch 语句用来选择多个需要执行的代码块 ,一定程度上简化了if....else 1. 语法 switch(表达式) { case n: 代码块 break; case n: 代码块 break; defau ......
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 ......