const go
【入门】Go语言流程控制
一、if判断 1.1 单if结构 语法: if 条件判断 { 代码句 } 案例:判断是否成年了 package main import "fmt" func main() { var age uint fmt.Println("请输入您的年龄:") fmt.Scan(&age) if age >= ......
go 基础
go 入门 hello world 仪式感还是要有的 package main func main() { println("hello world") } print系列主要用于输出,主要包含了三个方法: package main import "fmt" func main() { // 一次输 ......
Go语言基础(二)
写在前面 上次的博客主要介绍了Go语言中的变量和if,for循环等。见Go语言基础(一)。 这次主要来学习一下Go语言中的函数,数组与切片。 函数的具体定义 基本定义 直接上例子: func add() { fmt.Println("Hello World") } func max(num1 int ......
GO实现Redis:GO实现Redis的AOF持久化(4)
将用户发来的指令以RESP协议的形式存储在本地的AOF文件,重启Redis后执行此文件恢复数据 https://github.com/csgopher/go-redis 本文涉及以下文件: redis.conf:配置文件 aof:实现aof redis.conf appendonly yes app ......
Go 语言 new 和 make 关键字的区别
原文链接: Go 语言 new 和 make 关键字的区别 本篇文章来介绍一道非常常见的面试题,到底有多常见呢?可能很多面试的开场白就是由此开始的。那就是 new 和 make 这两个内置函数的区别。 其实这个问题本身并不复杂,简单来说就是,new 只分配内存,而 make 只能用于 slice、m ......
Go03-函数+包+异常处理
Go03-函数+包+异常处理 1.函数的基本介绍 func main() { // 1 为完成某一功能的程序指令的集合,成为函数。 // 2 函数分为自定义函数和系统函数。 // 3 函数的定义,使用关键字func来定义一个函数。 /* func 函数名 (形参列表) (返回值列表) { 函数执行的 ......
Go02-运算符+流程控制
Go02-运算符+流程控制 1.运算符基本介绍 Go中的运算符分为:算术运算符、赋值运算符、比较运算符/关系运算符、逻辑运算符、位运算符和其他运算符。 Go中没有三元运算符?。 2.算术运算符 // 1 算术运算符。 // + 正号;- 负号; // + 加;- 减;* 乘;/ 除;% 取余; // ......
Go06-文件操作+单元测试+goroutine+channel+反射
Go06-文件操作+单元测试+goroutine+channel+反射 1.打开和关闭文件 func main() { // 1 打开文件。 // file可以称为file对象、file指针、file文件句柄。 file, err := os.Open("D:\\1.txt") if err != ......
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 ......
【入门】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 ......
【入门】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 包是不是可以实现通用的校验处理呢。如果可以实现,业务逻辑就只需要专注与业务实现,进一步实 ......
go-pprof
非侵入式的分析工具。 主要分为几个阶段。 1、收集运行信息 引入包 import "runtime/pprof" var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file") pprof.StartCPUPro ......
前端RSA非对称加密Go解密
Person: JavaScript实现非对称加密 ChatGPT: JavaScript 可以使用公钥密码学算法来实现非对称加密。常用的公钥密码学算法包括 RSA 和 ECC。 下面是一个使用 RSA 算法实现非对称加密的示例: // 生成 RSA 密钥对 const { publicKey, p ......
关于go-vendor和go-mod
go vendor在这个时间节点来讲的话,可能有些古典的气质了。 go vendor依旧在go mod的架构来讲,= go mod vendor 这个是当时依赖于goland这个ide的环境中,默认会生成对应当前项目的go path全局变量,此时用 go vendor有一个好处,相当于隔离出一个独立 ......
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 ......
用const修饰指针
1)常量指针 语法:const 数据类型 *变量名; 不能通过解引用的方法修改内存地址中的值(用原始的变量名是可以修改的)。 注意: l 指向的变量(对象)可以改变(之前是指向变量a的,后来可以改为指向变量b)。 l 一般用于修饰函数的形参,表示不希望在函数里修改内存地址中的值。 l 如果用于形参, ......
const在c语言和c++中的区别
1.c语言中的const变量 c语言中const变量是只读变量,有自己的存储空间 2.c++中的const常量 可能分配存储空也可能不分配存储空间 当const常量为全局,并且需要再其他文件中使用,会分配存储空间 当使用&操作符,取const常量的地址时,会分配存储空间 当const int &a= ......
PaddleOCR之高性能Go语言实现OCR识别
最近为了让python语言能够直接调用PaddleOCR的C++的动态链接库,针对本人已经开源的PaddleOCR项目https://gitee.com/raoyutian/paddle-ocrsharp使用的PaddleOCR的C++动态库,进行了大量代码修改,修改后PaddleOCR,导出标准C ......
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库. 通过它可以使数据库操作非常简便 ......
【责任链设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
简介 责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,也叫职责链模式、命令链模式。这种模式为请求创建了一个接收者对象的链,允许你将请求沿着处理者链进行发送,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。 当程序需要使用不同方式来处理多种 ......
golang pprof 监控系列(1) —— go trace 统计原理与使用
golang pprof 监控系列(1) —— go trace 统计原理与使用 服务监控系列文章 服务监控系列视频 关于go tool trace的使用,网上有相当多的资料,但拿我之前初学golang的经验来讲,很多资料都没有把go tool trace中的相关指标究竟是统计的哪些方法,统计了哪段 ......
go
1、深拷贝(Deep Copy) 拷贝的是数据本身,创造一个样的新对象,新创建的对象与原对象不共享内存,新创建的对象在内存中开辟一个新的内存地址,新对象值修改时不会影响原对象值。既然内存地址不同,释放内存地址时,可分别释放。 值类型的数据,默认全部都是深复制,Array、Int、String、Str ......
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 ......