Go

Go06-文件操作+单元测试+goroutine+channel+反射

Go06-文件操作+单元测试+goroutine+channel+反射 1.打开和关闭文件 func main() { // 1 打开文件。 // file可以称为file对象、file指针、file文件句柄。 file, err := os.Open("D:\\1.txt") if err != ......
goroutine 单元 channel 文件 Go

Go01-开发环境搭建+注释+基本数据类型+指针+命名规范

Go01-开发环境搭建+注释+基本数据类型+指针+命名规范 1.Go常用网站 https://www.topgoer.com/,Go学习网站,包含Go基础教程、beego、lris等Go开发常用框架。 Go开发软件下载:https://code.visualstudio.com/,VSCode;ht ......
指针 注释 类型 环境 数据

【入门】Go语言运算符详解

一、算数运算符 + - * / % ++ -- 1.1 案例一:算数运算符练习 package main import "fmt" func main(){ // 加减乘除 fmt.Printf("1 + 1 = %v \n",1+1) fmt.Printf("3 - 1 = %v \n",3-1) ......
运算符 语言

Go日常

Test 1. 简介 Go 语言中自带有一个轻量级的测试框架 testing 和自带的 go test 命令来实现单元测试和性能测试。 2. 要求 文件名必须是`_test.go`结尾的,这样在执行`go test`的时候才会执行到相应的代码 你必须 import `testing`这个包 所有的测 ......

Go map 内存泄露

前言 在Go中, map这个结构使用的频率还是比较高的. 其实在所有的语言中, map使用的频率都是很高的. 之前在使用中, 一直都知道map的内存在元素删除的时候不会回收, 但一直没有仔细的研究为什么. 今天就来好好揣摩揣摩. func main() { m := make(map[int][12 ......
内存 map Go

【入门】Go语言常量详解

1、什么是常量? 程序运行期间不可以变的量 使用 const 定义 不能修改常量的值 不能打印常量的地址 常量在定义时候必须赋值 2、常量于变量的区别? 变量的值是可以变的,常量值不可以变 只是把变量的var改成了 const,常量在定义时候必须赋值。 3、定义常量 语法: const 常量名称 = ......
常量 语言

go学习 day223 家庭记账软件

###面向过程 package main import "fmt" func main() { // 声明一个变量,保存用户的输入 key := "" // 声明一个变量,查看是否退出程序 var status bool = true // 账户余额 var balance float64 = 10 ......
家庭 软件 day 223

【入门】Go语言变量详解

一、变量赋值的几种方式 1.1 声明单个变量 语法: var name type name:变量名称 type:变量类型 案例: package main func main() { var name string var age uint } 1.2 声明多个变量 语法: var name1,na ......
变量 语言

go gin web应用-通过中间件形式实现通用的参数检验

都知道 gin 在web开发方面应用广泛,但在参数校验上,之前写一堆 POST 接口的时候,每个接口的业务代码里都要去实现 validate 校验逻辑,感觉代码复用糟糕。 为解决这问题,想到通过 reflect 包是不是可以实现通用的校验处理呢。如果可以实现,业务逻辑就只需要专注与业务实现,进一步实 ......
中间件 形式 参数 gin web

go-pprof

非侵入式的分析工具。 主要分为几个阶段。 1、收集运行信息 引入包 import "runtime/pprof" var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file") pprof.StartCPUPro ......
go-pprof pprof go

前端RSA非对称加密Go解密

Person: JavaScript实现非对称加密 ChatGPT: JavaScript 可以使用公钥密码学算法来实现非对称加密。常用的公钥密码学算法包括 RSA 和 ECC。 下面是一个使用 RSA 算法实现非对称加密的示例: // 生成 RSA 密钥对 const { publicKey, p ......
前端 RSA

关于go-vendor和go-mod

go vendor在这个时间节点来讲的话,可能有些古典的气质了。 go vendor依旧在go mod的架构来讲,= go mod vendor 这个是当时依赖于goland这个ide的环境中,默认会生成对应当前项目的go path全局变量,此时用 go vendor有一个好处,相当于隔离出一个独立 ......
go-vendor go-mod vendor go mod

go的环形数组

package main import ( "errors" "fmt" "os" ) // 使用一个结构体管理环形队列 type CircleQueue struct { maxSize int // 4 array [5]int // 数组 head int //指向队列队首 0 tail in ......
环形 数组

go 笔记 init函数

来自:go init函数 1、golang里的main函数是程序的入口函数,olang还有另外一个特殊的函数init函数,先于main函数执行 init函数的主要作用: 初始化不能采用初始化表达式初始化的变量。 程序运行前的注册。 实现sync.Once功能。 其他 init函数的主要特点: ini ......
函数 笔记 init go

PaddleOCR之高性能Go语言实现OCR识别

最近为了让python语言能够直接调用PaddleOCR的C++的动态链接库,针对本人已经开源的PaddleOCR项目https://gitee.com/raoyutian/paddle-ocrsharp使用的PaddleOCR的C++动态库,进行了大量代码修改,修改后PaddleOCR,导出标准C ......
高性能 PaddleOCR 语言 OCR

Go Xorm简单使用

官网相关文档 https://xorm.io/zh/docs/chapter-01/1.engine/ https://gitea.com/xorm/xorm/src/branch/master/README_CN.md xorm 是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便 ......
Xorm Go

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

简介 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,也叫职责链模式、命令链模式。这种模式为请求创建了一个接收者对象的链,允许你将请求沿着处理者链进行发送,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。 当程序需要使用不同方式来处理多种 ......
设计模式 语言 模式 责任 Python

golang pprof 监控系列(1) —— go trace 统计原理与使用

golang pprof 监控系列(1) —— go trace 统计原理与使用 服务监控系列文章 服务监控系列视频 关于go tool trace的使用,网上有相当多的资料,但拿我之前初学golang的经验来讲,很多资料都没有把go tool trace中的相关指标究竟是统计的哪些方法,统计了哪段 ......
原理 golang pprof trace go

go

1、深拷贝(Deep Copy) 拷贝的是数据本身,创造一个样的新对象,新创建的对象与原对象不共享内存,新创建的对象在内存中开辟一个新的内存地址,新对象值修改时不会影响原对象值。既然内存地址不同,释放内存地址时,可分别释放。 值类型的数据,默认全部都是深复制,Array、Int、String、Str ......
go

GO实现Redis:GO实现内存数据库(3)

实现Redis的database层(核心层:处理命令并返回) https://github.com/csgopher/go-redis datastruct/dict/dict.go type Consumer func(key string, val interface{}) bool type ......
内存 数据库 数据 Redis

json go

package mainimport ( "encoding/json" "fmt")type b struct { Params []interface{} `json:"params,omitempty"`}func main() { v := []interface{}(nil) v = ap ......
json go

【入门】Go语言切片详解

一、Go语言切片介绍 1.1 什么是切片? 切片(slice)是对数组的一个连续片段的引用,所以切片是一个引用类型,这个片段可以是整个数组,也可以是由起始和终止索引标识的一些项的子集,需要注意的是,终止索引标识的项不包括在切片内。 1.2 数组和切片的区别是什么? 切片和数组密不可分,如果将数组理解 ......
语言

【go】go多种uuid生产方式

package main import ( "fmt" "github.com/chilts/sid" "github.com/kjk/betterguid" "github.com/oklog/ulid" "github.com/rs/xid" "github.com/satori/go.uuid ......
多种 方式 uuid

【go】uuid简介

通用唯一识别码(英语:universally unique identifier,简称uuid)是一种软件建构的标准,亦为自由软件基金会组织在分散式计算环境领域的一部份。uuid的目的,是让分散式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以 ......
简介 uuid

【go】snowflake和snoyflake雪花算法学习与go实现

预备知识: Monotonic Clocks,即单调时间,所谓单调,就是只会不停的往前增长,不受校时操作的影响,这个时间是自进程启动以来的秒数 参考文章:https://www.simpleapples.com/2018/10/26/understand-time-struct-in-go/ 雪花算 ......
算法 雪花 snowflake snoyflake

[Go]string、int、int64相互转换

import "strconv" //先导入strconv包 // string到int int, err := strconv.Atoi(string) // string到int64 int64, err := strconv.ParseInt(string, 10, 64) // int到st ......
int string Go 64

开心档之Go 错误处理

Go 语言通过内置的错误接口提供了非常简单的错误处理机制。 error类型是一个接口类型,这是它的定义: type error interface { Error() string } 我们可以在编码中通过实现 error 接口类型来生成错误信息。 函数通常在最后的返回值中返回错误信息。使用erro ......
错误

开心档之Go 语言数据类型

在 Go 编程语言中,数据类型用于声明函数和变量。 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。 Go 语言按类别有以下几种数据类型: 序号类型和描述 1 布尔型 布尔型的值只可以是常量 true 或者 false。一个简单 ......
语言 类型 数据

开心档之Go 语言条件语句

条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。 下图展示了程序语言中条件语句的结构: Go 语言提供了以下几种条件判断语句: 语句描述 if 语句 if 语句 由一个布尔表达式后紧跟一个或多个语句组成 ......
语句 条件 语言

开心档之Go 语言环境安装

Go 语言支持以下系统: Linux FreeBSD Mac OS X(也称为 Darwin) Windows 安装包下载地址为:https://golang.org/dl/。 如果打不开可以使用这个地址:https://golang.google.cn/dl/。 各个系统对应的包名: 操作系统包名 ......
语言 环境