going

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

简介 外观模式(Facade Pattern),也叫门面模式,是一种结构型设计模式。它向现有的系统添加一个高层接口,隐藏子系统的复杂性,这个接口使得子系统更加容易使用。 如果你需要一个指向复杂子系统的直接接口,且该接口的功能有限,则可以使用外观模式。或者需要将子系统组织为多层结构,可以使用外观。 作 ......
外观设计 外观 语言 模式 Python

Go-context源码解析

首先我们简单的来看一个例子,如下:(学好这个例子,我们就可以说完全掌握住context了,并且能重构一个context func main() { ctx, cancel := context.WithCancel(context.Background()) ctxV := context.With ......
Go-context 源码 context Go

GO - 结构体嵌套

概述 Go 支持将多个结构体通过嵌套的方式,组成一个大的结构体,降低了单个结构体复杂度,同时提高了结构体之间组合的灵活性。 例子 为了省略篇幅,本小节只使用 字面量 方式初始化,new() 的初始化方式请参照 结构体 小节。 每个结构体单独初始化,最后组装 package main import ( ......
结构 GO

用 Go 剑指 Offer 11. 旋转数组的最小数字

已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,4,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,4]若旋转 7 次,则可以得到 [0,1,4,4,5,6,7]注意,数组 [ ......
数组 数字 Offer Go 11

如何设计一个优秀的 Go Web 项目目录结构

基本原则 可读性和可维护性:设计目录结构应该易于阅读和维护,目录名称要简洁、清晰,最好能达到顾名思义的效果。 可扩展性和模块化:设计目录结构应该易于扩展和模块化,随着时间的推移,项目会不断变大,项目的目录结构应该能够很容易支撑这种变化 规范性和一致性:设计目录结构应该遵循规范和一致性,如无特殊情况, ......
结构 目录 项目 Web Go

Go-json源码解析

代码例子如下: type Student struct { Name string `json:"name"` Age int `json:"age"` } func main() { stu := Student{ Name: "张三", Age: 21, } buf := bytes.NewBu ......
源码 Go-json json Go

vscode中配置go开发环境

1. 下载go安装包: https://golang.org/dl/ 下载对应版本,安装完成后,打开windows powershell 输入go env 出现go相关的命令就安装成功了 2. vscode中安装go的插件 go 3. 配置环境变量: https://goproxy.io/zh/ 新 ......
环境 vscode

go map

数据结构 type hmap struct { count int // 键值对的个数 flags uint8 B uint8 // 桶的个数(2的B次方个) noverflow uint16 // 使用的溢出桶数量 hash0 uint32 // 哈希种子 buckets unsafe.Point ......
map go

go html template

前言: 在一些前后端不分离的Web架构中,我们通常需要在后端将一些数据渲染到HTML文档中,从而实现动态的网页(网页的布局和样式大致一样,但展示的内容并不一样)效果。 正文: 模板文件通常定义为.tmpl和.tpl为后缀(也可以使用其他的后缀.html,.htm) 模板文件中使用{{和}}包裹和标识 ......
template html go

go cookie && session

前言: HTTP 协议是无状态的,所以用户的每一次请求都是无状态的, 不知道在整个 Web 操作过程中哪些连接与该用户有关。 应该如何来解决这个问题呢? Web 里面经典的解决方案是 Cookie 和 Session。 正文: cookie 机制是一种客户端机制,把用户数据保存在客户端, 而 Ses ......
amp session cookie go

go net/http包的使用

前言: Go语言标准库内建提供了net/http包,涵盖了HTTP客户端和服务端的具体实现。 使用net/http包,我们可以很方便地编写HTTP客户端或服务端的程序。 正文: 包的文档地址:https://go-zh.org/pkg/net/http net/http 包 使用说明: 注册路由 h ......
http net go

(转)go深入:reflect 运行时反射

原文:https://lingzihuan.icu/posts/go-13-depth-reflect/ 啥是反射 go语言中,反射为我们提供了一种可以在运行时操作任意类型对象的能力,比如,查看一个接口变量的具体类型、看一个结构体有多少字段、修改某个字段的值等。 比如 fmt.Println: fu ......
reflect

GO框架 - gin简介

Gin 是一个用 Go (Golang) 编写的 web 框架。它是一个类似于 martini 但拥有更好性能的 API 框架, 由于 httprouter,速度提高了近 40 倍。如果你是性能和高效的追求者, 你会爱上 Gin. 快速:基于 Radix 树的路由,小内存占用。没有反射。可预测的 A ......
框架 简介 gin

GO框架 - beego简介

bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建、热编译、开发、测试、和部署。 简单化:RESTful 支持、MVC 模型,可以使用 bee 工具快速地开发应用,包括监控代码修改进行热编译、自动化测试代码以及自动化打包部署。 ......
框架 简介 beego

GO框架 - iris简介

专注于高性能 简单流畅的API 高扩展性 强大的路由和中间件生态系统 使用iris独特的表达主义路径解释器构建RESTful API 动态路径参数化或通配符路由与静态路由不冲突 使用重定向选项从URL中删除尾部斜杠 使用虚拟主机和子域名变得容易 分组API和静态或甚至动态子域名 net / http ......
框架 简介 iris

Go 语言进行依赖包的管理的几种方式

Go 语言具有丰富的开源包管理工具,可以方便地进行依赖包的管理。下面介绍如何在 Go 语言中安装依赖包。 使用 go get 命令 go get 命令可以从远程代码仓库(比如 GitHub)下载 Go 语言包,并安装到 $GOPATH/src 目录下。通常使用以下命令来安装一个依赖包: go get ......
语言 方式 Go

go测试用例编写规则

1. 测试用例编写规则 1. 测试用例文件必须以_test结尾 例如: util_test.go 2. 功能测试用例必须以Test开头 3. 模糊测试用例方法Fuzz开头 4. 基准测试用例方法Benchmark开头 5. 文件夹_test结尾的测试包,会被编译成分离包 ......
规则

Go语言中函数和方法的区别

在 Go 语言中,函数和方法都是用于封装可执行代码的结构。它们之间的区别在于函数是独立的,而方法则需要依赖于类型(或结构体)来调用。 具体来说,函数是独立的可执行代码块,可以在任何地方定义和调用,可以接受参数和返回值。它们通常不依赖于特定的类型或数据。下面是一个示例函数的定义: func greet ......
函数 语言 方法

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 语言中,变量的赋值操作默认是浅拷贝,即两个变量指向同一个内存地址。这意味着,如果修改其中一个变量的值,另一个变量的值也会发生变化。 对于复杂数据类型,如结构体和切片, ......
语言基础 语言 基础