Zlwriii
码龄3年
关注
提问 私信
  • 博客:102,240
    102,240
    总访问量
  • 124
    原创
  • 811,665
    排名
  • 166
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:安徽省
  • 加入CSDN时间: 2021-06-18
博客简介:

Zlwriii的博客

查看详细资料
个人成就
  • 获得31次点赞
  • 内容获得5次评论
  • 获得230次收藏
  • 代码片获得279次分享
创作历程
  • 44篇
    2022年
  • 80篇
    2021年
成就勋章
兴趣领域 设置
  • 运维
    容器jenkins自动化
  • 服务器
    linuxcentos
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

353人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Go语言-HTTP编程

目录前言1、服务器配置2、客户端配置3、请求方法4、panic宕机恢复5、模板6、MYSQL前言Go原生支持http,直接使用import("net/http")即可,http服务性能和nginx非常接近,都具备高并发支持的能力,代码实现起来比较简单。1、服务器配置package mainimport ( "fmt" "net/http")//HTTP服务端配置//业务请求相应处理func hello(res http.ResponseWr
原创
发布博客 2022.05.01 ·
1371 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Go语言-UDP编程

目录前言1、服务端配置2、客户端配置3、多客户端对接消息前言UDP是用户数据报协议,是一种无连接传输协议,不需要建立连接就可以直接发送和接收数量,属于不可靠的,没有时序的通信,UDP实时性好,适合直播环境。1、服务端配置package mainimport ( "fmt" "net")//UDP服务端配置func main() { //1:启动监听 listener, err := net.ListenUDP("udp", &net.UDPA
原创
发布博客 2022.04.30 ·
630 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go语言-TCP编程

目录1、客户端和服务端模型2.、服务器端配置3.、客户端配置4、优化聊天模式1、客户端和服务端模型socket: BSD UNIX的进程通信机制,通常也称作套接字”,用于描述IP地址和端口,是一个通信链的句柄。socket可以理解为TCPIP网络的API,它定义了许多函数,程序员可以使用它来开发TCPIP网络的应用程序。计算机上运行对应用程序通常通过“套接字”向网络发出请求或者应答网络请求。服务端处理流程:① 监听端口。② 接收客户端连接。③ 创建go
原创
发布博客 2022.04.30 ·
691 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go语言-单元测试

目录前言1、函数测试2、结构体测试前言在提交测试工程师代码前,先进行单元测试自检,没有问题,方可提交代码,对于模块或者函数需要自行测试用例。规则:1、文件名必须以_test.go结尾;2、如果是测试函数,必须以Test开头。1、函数测试calc.gopackage main//加法func add(a, b int) int { return a + b}//减法func sub(a, b int) int { return a - b}ca
原创
发布博客 2022.04.29 ·
775 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Go语言-并发控制和锁

目录1、互斥锁2、读写互斥锁3、sync.Once4、sync.Map5、定时器1、互斥锁互斥锁是一种常用的控制共享资源访问的方法,它能够保证只有一个 goroutine 访问共享资源。互斥锁作用:同一时间有且仅有一个 goroutine 进入临界区,其他 goroutine 则在等待锁,等互斥锁释放后,等待的 goroutine 才可以获取锁进入临界区,多个 goroutine 都在等待一个锁时,唤醒机制是随机的。示例:package mainimport
原创
发布博客 2022.04.28 ·
220 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go语言-高并发

目录1、基本概念2、sync.WaitGroup3、goroutine和线程4、channel5、无缓冲通道和缓冲通道6、生产者和消费者模型7、select 多路复用8、单向通道总结1、基本概念并发:是指一个时间段中几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,担任一个时刻点上只有一个程序在处理机上运行。同一时间段同时在做多个事情。并行:在操作系统中指,一组程序按独立异步的速度执行,无论从微观还是宏观,程序都是一起执行的。同
原创
发布博客 2022.04.27 ·
2405 阅读 ·
3 点赞 ·
0 评论 ·
10 收藏

Go语言-文件操作

目录前言1、打开和关闭文件2、读取文件3、写入文件前言计算机中的文件是存储在外部介质(硬盘)上的数据集合,文件分为文本文件和二进制文件。1、打开和关闭文件os.Open()函数能够打开一个文件,返回一个*File和一个err,对得到的文件示例close()方法能够关闭文件。示例:package mainimport ( "fmt" "os")//文件的打开和关闭func main() { //打开当前目录下的abc.txt文件 file, e
原创
发布博客 2022.04.19 ·
811 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Go语言-反射

目录前言1、reflect2、ValueOf3、Value.Set4、结构体反射5、函数反射6、方法反射前言概念:运动时动态的获取变量信息。1、reflectreflect.TypeOf,获取变量的类型,返回reflect.Type。reflect.ValueOf,获取变量的值,返回reflect.Value类型。reflect.Value.Kind,获取变量的类别,返回一个常量。reflect.Value.Interface(),转换成interfa
原创
发布博客 2022.04.15 ·
334 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go语言-接口

目录前言1、接口的定义2、多态3、系统接口调用4、接口嵌套5、类型断言6、链表使用前言接口不需要显示的实现,只需要一个变量,含有接口类型的所有方法,那么这个变量就实现了这个接口,如果一个变量含有多个interface类型的方法,那么这个变量就实现了多个接口。1、接口的定义概念:Interface类型可以定义一组的方法,不需要实现,并且不能包含任何变量,称之为接口。语法格式:type example interface { Method1(参数
原创
发布博客 2022.04.15 ·
230 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Go语言-结构体和方法

目录1、别名定义2、工厂模式3、Tag原信息4、匿名字段5、方法1、别名定义示例:变量别名定义。package mainimport "fmt"//结构体别名type Student struct{ name string}type sss Studentfunc main() { //Student类型结构体为a var a Student a=Student{"zhangsan"} //sss类型结构体为b var b sss
原创
发布博客 2022.04.12 ·
230 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go语言-二叉树

目录前言1、前序遍历2、中序遍历3、后序遍历前言满足以下两个条件的数就是二叉树:1.本身是有序树;2.树中包含的各个节点的度不能超过2,即只能是0、1或者2。1、前序遍历示例:用递归的方式遍历。(根左右)package mainimport "fmt"//定义结构体type Student struct { Name string Age int Score float32 left *Student right *Student
原创
发布博客 2022.04.11 ·
858 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go语言-结构体链表

目录前言1、定义struct的三种方式2、存储方式3、链表更新4、头部添加结构体5、指定位置插入6、删除节点前言结构体是自定义复杂的数据结构,struck里面可以包含多个字段(属性),struck类型可以定义方法,和函数有区分,struck属于值类型,且可以做嵌套,Go中没有Class类型,只有struck类型。1、定义struct的三种方式格式方式:1:var struct Student2:var struct *Student = new (St
原创
发布博客 2022.04.09 ·
899 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go语言-字符串

目录1、字节数组2、头部处理3、位置索引4、替换5、统计次数6、重复7、大小写8、去除字符9、切片处理10、数值处理1、字节数组示例:输出字节数组。package mainimport "fmt"func main() { var ( str1 = "hello" str2 = "world" ) result := str1 + " " + str2 fmt.Printf("数据:%s,长度:%d,数据类型:%T
", r
原创
发布博客 2022.04.05 ·
811 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Go语言-递归函数

目录前言1、阶乘2、斐波那契数列前言递归函数就是在调用过程中调用自己。语法格式:func recursion() { recursion() //函数调用自身}func main() { recursion()}Go 支持递归。但在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。1、阶乘示例:package mainimport "
原创
发布博客 2022.04.01 ·
450 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go语言-映射

目录前言1、映射的实现2、元素赋值3、查找与遍历4、元素删除5、将映射传递给函数前言映射是一种数据结构,用于存储一系列无序的键值对,映射基于键来存储。映射功能强大的地方是,能够基于键快速检索数据。键就像索引一样,指向与该键关联的值。与 C++、java 不一样,Go 使用映射 (map) 不需要引入任何库。1、映射的实现因为映射也是一个数据集合,所以也可以使用类似处理数组和切片的方式来迭代映射中的元素。但映射是无序集合,所以即使以同样的顺序保存键值对,每次
原创
发布博客 2022.04.01 ·
1485 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Go 语言-切片

目录前言1、定义切片2、切片的初始化3、len() 和 cap() 函数4、空 (nil) 切片5、切片截取6、append() 和 copy() 函数前言切片是对数组的抽象。数组的长度是不可改变的,在特定的场景中这样的集合就不太合适,Go 中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片二点容量增大。1、定义切片可以声明一个未指定大小的数组来定义切片。var identifi
原创
发布博客 2022.03.30 ·
3282 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

Go语言-结构体

目录前言1、定义结构体2、访问结构体成员3、结构体作为函数参数4、结构体指针前言数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体表示一项纪录,比如班级的学生信息,每个人有以下属性:Name:姓名Sex:性别Age:年龄ID card :身份证1、定义结构体结构体定义需要使用 type 和 struct 语句。type 语句设定了结构体名称。st
原创
发布博客 2022.03.29 ·
600 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

GO语言- 指针

目录前言1、指针概念2、使用指针流程3、空指针4、指针数组5、指向指针的指针6、多重指针7、指针作为函数参数前言Go 中指针很容易,使用指针可以更简单的执行一些任务。变量是一种使用方便的占位符,用于引用计算机内存地址。取地址符号是 & ,放到一个变量前使用就会返回相应变量的内存地址。1、指针概念一个指针变量指向了一个值的内存地址。类似于变量和常量,在使用指针前需要声明指针。声明如下:var var_name *var-name//
原创
发布博客 2022.03.29 ·
916 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

Go语言-数组

目录1、声明数组2、初始化数组3、访问数组元素4、多维数组5、向函数传递数组数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如:整型、字符串或者自定义的类型。相对于去声明 number0, number1, ..., number99 的变量,使用数组形式 numbers[0], numbers[1] ..., numbers[99] 更加方便且易于扩展。数组元素可以通过索引(位置)来读取(或者修改),索引从0 开始,第一个元素索引
原创
发布博客 2022.03.28 ·
4932 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

Go 语言-包的引入与用法

目录1、包介绍2、标准库3、程序执行顺序1、包介绍包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其他包中导入内容。如同其他一些编程语言中的类库或命名空间的概念,每个 go 文件都属于且仅属于一个包。一个包可以有许多以 .go 为扩展名的源文件组成,因此文件名和包名一般来说都是不相同的。必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main 表示可独立执行的程序,每个 Go 应
原创
发布博客 2022.03.26 ·
1967 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多