Go基础
文章平均质量分 71
关于Go语言基础
undertale flower
这个作者很懒,什么都没留下…
展开
-
数据结构【Golang实现】(六)——队列
《Go语言》实现顺序队列、链式队列、循环队列原创 2023-03-16 19:00:44 · 3063 阅读 · 1 评论 -
数据结构【Golang实现】(四)——双向循环链表
《Go语言》实现双向循环链表原创 2023-03-13 22:27:10 · 814 阅读 · 0 评论 -
数据结构【Golang实现】(三)——双向链表
《Go语言》实现双向链表原创 2023-03-13 22:23:29 · 528 阅读 · 0 评论 -
数据结构【Golang实现】(二)——循环链表
《Go语言》实现循环链表原创 2023-03-13 22:21:38 · 647 阅读 · 0 评论 -
数据结构【Golang实现】(一)——单链表
《Go语言》实现单链表的各种操作原创 2023-03-13 21:03:41 · 626 阅读 · 1 评论 -
Go项目优化——动态缓存Redis的使用
Go项目优化——使用Redis作为动态缓存本文使用的第三方包是github.com/gomodule/redigo/redis,讲述了如何使用go连接redis、连接池、以及在项目中的使用。原创 2022-10-15 18:05:16 · 1556 阅读 · 0 评论 -
Golang——通过实例了解并解决CORS跨域问题
通过一个基于简单易懂的例子,了解前后端交互时出现的CORS跨域问题,包括跨域问题出现的原因、前后端两种解决方法!!!例子技术栈:后端使用:golang net/http前端使用:js express http-proxy-middleware原创 2022-09-20 11:10:34 · 1836 阅读 · 0 评论 -
Go语言——快速使用Markdown解析库
返回一个针对用户生成内容的策略,该内容是HTML所见即所得工具和Markdown转换的结果。您可以安全地输入用户提供的数据,速度快,支持通用扩展(表,智能标点符号替换等),并且对于所有utf-8(unicode)都是安全的输入。若不能保证待解析的内容安全性,例如来自于用户提供的内容,则需要进行内容过滤来保证安全。设计的目的是通过简单、轻量级的方式来添加格式,而不需要使用 HTML。MarkdownBasic 是一个方便简单渲染的函数,它处理没有启用扩展的markdown输入。并应用给定的策略允许列表。原创 2022-09-12 22:14:01 · 2544 阅读 · 1 评论 -
Go语言——使用模糊查询检索关键词小技巧
模糊查询检索关键词原创 2022-09-08 22:29:53 · 959 阅读 · 0 评论 -
Golang高性能日志库zap + lumberjack 日志切割组件详解
Golang 高性能日志库 zap 的详细使用!!!Gin集成zap!!!lumberjack 日志切割组件的详细使用!!!原创 2022-09-01 21:08:19 · 8210 阅读 · 1 评论 -
Go代码格式化——gofmt的使用
Gofmt格式化Go程序。它使用制表符进行缩进,使用空格进行对齐。如果没有显式路径,它将处理标准输入。给定一个文件,它对文件进行操作;给定一个目录,它递归地操作该目录中的所有.go文件。(忽略以句点开头的文件。)...原创 2022-09-01 10:59:44 · 5413 阅读 · 0 评论 -
Go语言——测试与性能
要编写个新的测试模块,需要创建个名称以_test.go结尾的文件,该文件包含TestXxx函数,最后将该文件放在与被测试的包相同的包目录中。实际上,这里所说的对CPU使用情况的取样就是对当前的goroutine的堆栈上的程序计数器的取样,由此就可以从样本记录中分析哪些代码是计算时间最长,或者最耗CPU资源的部分了。由单元测试的代码,触发运行的被测试代码的占所有代码行数的比例,被称为测试覆盖率,代码覆盖率不一定完全精准,但是可以作为参考,可以有助于测试和预计覆盖率之间的差距,...原创 2022-07-17 18:43:51 · 2288 阅读 · 1 评论 -
Go学习——runtime.Caller()函数
目录函数:参数解释:例子:函数:func Caller(skip int) (pc uintptr, file string, line int, ok bool)Caller()报告当前go程调用栈所执行的函数的文件和行号信息。参数解释:skip:上溯的栈帧数,0表示Caller的调用者(Caller所在的调用栈)(0-当前函数,1-上一层函数,…)。pc :调用栈标识符file:文件路径line:该调用在文件中的行号ok:如果无法获得信息,ok会被设为false例子:原创 2022-04-29 21:47:21 · 3231 阅读 · 0 评论 -
Go学习——使用MongoDB
目录MongoDB添加mongodb依赖连接MongoDB:操作数据库CRUD操作插入文档插入单个文档插入多条文档更新文档更新单个文档更新多个文档查找文档查询单个文档:查询多个文档:删除文档MongoDBMongoDB是一个高性能,开源,无模式的文档型数据库,是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,采用的是类似json的bjson格式来存储数据,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,原创 2022-04-03 08:27:55 · 6142 阅读 · 0 评论 -
Go语言——反射
文章目录一、reflect-反射-浅析-重要Go语言中的类型反射第一定律:反射可以将“接口类型变量”转换为“反射类型对象”反射第二定律:反射可以将“反射类型对象”转换为“接口类型变量”反射第三定律:如果要修改“反射类型对象”其值必须是“可写的”结构体总结二、reflect-反射类型对象-获取类型信息1. TypeOf()和reflect.Type类型1.1 理解反射的类型(Type)与种类(Kind)1.1.1 反射种类(Kind)的定义1.1.2 从类型对象中获取类型名称和种类的例子1.2. refle原创 2022-01-23 09:10:03 · 1041 阅读 · 1 评论 -
GO语言——IO项目
IO项目1. util包2. model包3. dao包4. service包5. controller包6. main.go7. user.txt文件1. util包file.go// CreatFile// @Title CreatFile// @Description 创建文件// @Param name string "文件名"// @Return *os.File "文件对象"func CreatFile(name string) *os.File { file, err :原创 2022-01-15 21:20:45 · 418 阅读 · 0 评论 -
Go语言——Json处理
文章目录□ JSON处理1. 编码JSON (编组|封送 Marshaling)1. Marhsal()2. MarshalIndent3. struct tag4. 通过map生成JSON2. 解码JSON(解组|解封送:Unmarshaling)□ JSON处理 JSON (JavaScript Object Notation)是一种比XML更轻量级的数据交换格式,在易于人们阅读和编写的同时,也易于程序解析和生成。 尽管JSON是JavaScript的一个子集,但JSON采用完全独立于编程语言的文原创 2021-12-11 01:25:29 · 2708 阅读 · 1 评论 -
LiteIDE简单使用
目录1. 下载安装2. 配置环境1.1配置管理GOPATH/Modules/GOPROXY1. 下载安装LiteIDE官网:官网下载地址:下载下载后解压,然后将liteide.exe发送到桌面即可。2. 配置环境 LiteIDE给我们提供了多种的环境,目的是为了让我们能将程序编译成不同的系统所能执行的文件。 例如我目前使用的是windows64系统,而且我的服务器也是windows64,那我只需要选择system的环境就可以,这样在我执行编译执行后,编译器将会自动生成windows中可执原创 2021-11-22 19:15:28 · 7257 阅读 · 1 评论 -
Go语言——方法
接口□ 概述接口是一种抽象类型,是对其他类型行为的概括与抽象,从语法角度来看,接口是一组方法定义的集合。很多面向对象的语言都有接口这个概念,但Go语言接口的独特之处在于它是隐式实现。换句话说,对于一个具体的类型,无须声明它实现了哪些接口,只要提供接口所必需的方法即可。在Go语言中,接口(interface)是一个自定义类型,接口类型具体描述了一系列方法的集合。接口类型是一种抽象的类型,它不会暴露出它所代表的对象的内部值的结构和这个对象支持的基础操作的集合,它们只会展示出它们自己的方法。接口只有方法声原创 2021-08-15 10:53:19 · 112 阅读 · 0 评论 -
Go语言——复合类型
1. 数组a.【声明数组】var name [size] type// 如果数组长度不确定,可以使用 ... 代替数组的长度,// 编译器会根据元素个数自行推断数组的长度:balance := [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}b.【初始化数组】name := [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}// 1. 方式一:完整写法 var arr [3]int = [3]int{1, 2, 3}// 2原创 2021-07-24 19:39:34 · 746 阅读 · 2 评论 -
Go语言——双向链表
双向链表import ( "container/list" "fmt")双向链表的结构:[ nil | cur | next ]—><—[ prev | cur | next ]—><—[ prev | cur | nil ]双向链表结构中元素在内存中不是紧邻空间, 而是每个元素中存放上一个元素和后一个元素的【地址】。1. 第一个元素称为头(head)元素前连接(前置指针域)为nil。2. 最后一个元素称为尾(foot)元素,后连接(后置指针域)为原创 2021-08-01 09:01:33 · 425 阅读 · 0 评论 -
Go语言——并发编程
进程、线程: 计算机的核心是CPU(处理器),它承担了所有的计算任务。它就像一座工厂,时刻在运行。 假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义就是,单个CPU(处理器)一次只能运行一个任务。 进程就好比工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。 一个车间里,可以有很多工人。他们协同完成一个任务。 线程就好比车间里的工人。一个进程可以包括多个线程。 车间的空间原创 2021-08-29 06:20:25 · 198 阅读 · 0 评论