retry-go retry 113 go

Go 语言中defer 关键字的用法

在 Go 语言中,defer 关键字用于指定一个函数或方法在执行完毕后需要延迟执行,通常用于释放资源或清理操作。可以将 defer 语句放置在函数或方法中的任何位置,它会在函数或方法退出时按后进先出(LIFO)的顺序执行。 defer 语句的作用与 finally 语句类似,但是它有一些独特的特性。 ......
关键字 关键 语言 defer Go

go语言发送请求后接收到json如何提取其中指定参数

由于用过python的缘故,一开始想着直接取后来发现并不行,于是上网查找资料发现需要定义结构体绑定参数,后来定义完结构体后发现并没有解决问题,而且过程较为繁琐,于是想着先将接收到的数据转为字符串 body, _ := io.ReadAll(response.Body) fmt.Println(str ......
参数 语言 json

Kubegres 源码解析(三) 从 main.go 到 Spec 默认值填充

main.go Kubegres 使用 Kubebuilder V3 创建, 所以直接进行到 main.go. func main() { ... if err = (&controllers.KubegresReconciler{ Client: mgr.GetClient(), Logger: ......
源码 Kubegres main Spec go

之前练手使用基于gin的go web项目

目录结构: `-- demo |-- cmd | |-- api.go | `-- root.go |-- common | `-- consts | `-- consts.go |-- config | `-- viper.go |-- config.toml |-- go.mod |-- go. ......
项目 gin web

【过滤器设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

过滤器模式(Filter Pattern)或标准模式(Criteria Pattern),是一种结构型模式。这种模式允许使用不同的标准条件来过滤一组对象,并通过逻辑运算的方式把各条件连接起来,它结合多个标准来获得单一标准。 例子将创建一个 Person 对象、Criteria 接口和实现了该接口的实... ......
设计模式 过滤器 语言 模式 Python

(转)go语言web开发22 - beego框架之logs包使用

原文:https://www.cnblogs.com/hei-ma/articles/13791609.html beego框架的logs包是一个用来处理日志的库,目前支持的引擎有 file(输出日志到文件)、console(终端输出)、net(输出到网络地址)、smtp(发送邮件)。 一、beeg ......
框架 语言 beego logs web

go

一、go类型 1.布尔型 布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true。 2.数字类型 整型 int 和浮点型 float32、float64,Go 语言支持整型和浮点型数字,并且支持复数,其中位的运算采用补码。 3.字符串类型: 字符串就是 ......
go

go接口的定义 以及空接口

前言: 接口只有方法,并且方法里没有方法体,没有变量 接口中每个方法都要被一个类型实现,那么该类型就实现了该接口 接口定义了某个类型(对象)必须具备的功能,接口里面的方法是该类型最基本的功能,所以需要都实现。 那么实现接口后,直接实例化对象调用接口即可。 正文: 接口命名: 接口类型名,命名时一般在 ......
接口

go数组,切片,指针,map的声明

数组定义: 固定长度,只能有一种数据类型 数组必须指定长度,或使用...通过编译器自动识别长度 数组定义形式: 1、 var users [3]string users = [3]string{"liudehua", "guofucheng", "liming"} 2、 var users = [3 ......
数组 指针 map

go time 包的使用

定义时间模板: const TimeTem = "2006-01-02 15:04:05" //Format里必须用“2006-01-02 15:04:05” 表示24小时时间制显示时间 //Format里必须用“2006-01-02 03:04:05” 表示12小时时间制显示时间 //打印当前时间 ......
time go

如何在ubuntu22下安装docker版的golang来编译go语言写的代码

为了让我们的ubuntu22系统更干净清爽我们使用docker 首先使用snap install docker安装docker后即可使用docker了 docker命令的使用方法1:将你的代码下载到用户目录(~)下面(例如~/github/xixi/...)2:使用cd命令进到你代码需要运行go b ......
语言 代码 ubuntu docker golang

【拓展】Go语言基础加强

1、深浅拷贝 浅拷贝:仅仅拷贝的是变量的值,没有对指向的空间进行任何的拷贝。 深拷贝:将原有的变量的空间地址全部拷贝一份。 在 Go 语言中,变量的赋值操作默认是浅拷贝,即两个变量指向同一个内存地址。这意味着,如果修改其中一个变量的值,另一个变量的值也会发生变化。 对于复杂数据类型,如结构体和切片, ......
语言基础 语言 基础

Go语言入门4(切片)

切片 ​ Go语言切片是一种建立在数组类型之上的抽象,它构建在数组之上并且提供更强大的能力和便捷。解决了数组长度不可变等缺陷 声明切片 ​ 切片的数据结构非常小,只有三个字段:指向底层数组的指针,切片长度,切片容量。切片长度是指切片的真实长度,切片容量是指切片可扩展的最大长度,一般来讲切片长度要小于 ......
语言

Go语言入门3(数组)

数组 ​ 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型可以是任意的原始类型例如整形、字符串或者自定义类型(结构体、接口)。数组长度也是数组类型的一部分,所以[5]int和[10]int是属于不同类型的。 :star::在其他语言中数组大多是引用类型,但 ......
数组 语言

一道关于 len 函数的诡异 Go 面试题解析

package main func main() { var x *struct { s [][32]byte } println(len(x.s[99])) } 答题结果如下: 正确率只有 16%。 本文就讲解下为什么结果是 32。 01 解析题目 先剖析下这段代码,x 变量: var x *st ......
函数 一道 len Go

go run、build、install、get的原理和区别

学习go也有好些年头了,都没怎么研究过go的编译命令。真是惭愧。今天学习并记录下 结论: go run 专门用来运行命令源码文件的命令,一般用来运行单个文件 go build 主要是用于测试编译。编译某个包或者项目,在当前目录下生成可执行文件 go install 编译并安装代码包或者源码文件的。 ......
原理 install build get run

05-Go方法、接口、泛型

1 方法 //方法 1.是特殊的函数,可以自动传值 > 对象(go中就是结构体)来调用,自动把对象(当前结构体的实例)传过来 2.在func关键字 和 方法名 中间加入了一个特殊的接收器类型 接收器可以是结构体类型或者是非结构体类型 接收器是可以在方法的内部访问的 3.方法是绑定给结构体的 > 如何 ......
接口 方法 05 Go

「刷起来」Go必看的进阶面试题详解

勤学如春起之苗,不见其增日有所长;辍学如磨刀之石,不见其损日有所亏。 本文的重点:逃逸分析、延迟语句、散列表、通道、接口。 1.逃逸分析 逃逸分析是Go语言中的一项重要优化技术,可以帮助程序减少内存分配和垃圾回收的开销,从而提高程序的性能。下面是一道涉及逃逸分析的面试题及其详解。 问题描述: 有如下 ......

【装饰器设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 装饰器模式(Decorator Pattern)是一种结构型设计模式。将对象放入到一个特殊封装的对象中,为这个对象绑定新的行为,具备新的能力,同时又不改变其原有结构。 如果你希望在无需修改代码的情况下即可使用对象,且希望在运行时为对象新增额外的行为,可以使用装饰模式。或者你用继承来扩展对象行为 ......
设计模式 语言 模式 Python Java

go--时间日期相关

1、获取当天零点的时间戳 //当天0点的时间戳 //获取当前时间 t := time.Now() nowTime := time.Date(t.Year(), t.Month(), t.Day(), 0, 0, 0, 0, t.Location()) //转换为时间戳格式 timeSamp := n ......
日期 时间 go

GO基础:02 Golang 基础简介

一、标识符 标识符是指定义的具有特殊意义的词,例如变量、常量、函数名等等,任何一门语言中都对自己的标识符有特殊定义的规则。在 Go 语言中,标识符由字母数字和下划线组成,并且只能以字母和下划线开头,例如: 数字、字母和下划线组成:123、abc _ 只能以字母和下划线开头:abc123、_sysVa ......
基础 简介 Golang

GO基础 - 01 Hello,Golang

一、开发环境搭建 1. 下载 SDK 1 // Go官网下载地址 2 https://golang.org/dl/ 3 ​ 4 // Go官方镜像站(推荐) 5 https://golang.google.cn/dl/ 2. 安装 由于Go语言是一门跨平台的编译型语言,我们只需要在一个平台下进行开发 ......
基础 Golang Hello 01

GO基础:03 Golang 基本数据类型

一、整型 1. 整型介绍 Go 语言中,整型可以分为以下几类: 类型描述 uint8 无符号 8位整型 (0 到 255) uint16 无符号 16位整型 (0 到 65535) uint32 无符号 32位整型 (0 到 4294967295) uint64 无符号 64位整型 (0 到 184 ......
类型 基础 数据 Golang

Go 语言 new 和 make 关键字的区别

原文链接: Go 语言 new 和 make 关键字的区别 本篇文章来介绍一道非常常见的面试题,到底有多常见呢?可能很多面试的开场白就是由此开始的。那就是 new 和 make 这两个内置函数的区别。 其实这个问题本身并不复杂,简单来说就是,new 只分配内存,而 make 只能用于 slice、m ......
关键字 关键 语言 make new

Go基础:iota关键字的使用

Go基础:iota关键字的使用 iota介绍 iota是go语言的常量计数器,只能在常量的表达式中使用。 其值从0开始,在const中每新增一行将使得iota计数一次,即iota自己增长1(从这点来看,iota可以看成const块中的行索引,记录行数),其值一直自增1直到遇到下一个const关键字, ......
关键字 关键 基础 iota

go cap和len区别

首先要搞清楚容量和长度的区别: 容量是指底层数组的大小,长度指可以使用的大小 容量的用处在哪?在与当你用 appen d扩展长度时,如果新的长度小于容量,不会更换底层数组,否则,go 会新申请一个底层数组,拷贝这边的值过去,把原来的数组丢掉。也就是说,容量的用途是:在数据拷贝和内存申请的消耗与内存占 ......
cap len go

(转)Go 语言中的类型断言是什么?

原文:https://juejin.cn/post/6844904153056034823 Type Assertion Type Assertion(中文名叫:类型断言),通过它可以做到以下几件事情 检查 i 是否为 nil 检查 i 存储的值是否为某个类型 具体的使用方式有两种: 第一种: t ......
语言 类型

go path ,go vendor,go mode 模式区别和发展

前言: 包是多个 Go 源码的集合,是一种高级的代码复用方案。 Go语言中为我们提供了很多内置包,如 fmt、os、io,strconv,strings 等 Go 语言的入口 main() 函数所在的包(package)叫 main。 main 包想要引用别的代码,必须同样以包的方式进行引用。 go ......
模式 vendor path mode go

第十章:go mod操作

参考博客: https://blog.csdn.net/weixin_39611043/article/details/110133365 https://www.cnblogs.com/niuben/p/12560104.html 常用命令: // 初始化项目 go mod init test(t ......
mod

第二篇:go包管理

第二篇:go包管理 一、包管理 1 包 即模块,组织go源代码,提供了更好的可重用性和可用性。 每个文件中第一行是package packagename,代表指定了该文件属于那个包。 go语言中,同一层级的文件属于一个包,比如第一层级package main,如果新定义一个demo文件夹,在其中的文 ......