基于环形缓冲区的双端队列实现代码:package main
const minCapacity = 16
type Deque struct {
buf []interface{}
head int
tail int
count int
minCap int
}
func NewDeque() *Deque {
return &Deque{
buf: make(
转载
2024-04-06 20:58:37
56阅读
【代码】【golang】golang实现冒泡排序。
1、概述经常在开源库中看到rune关键字,从golang源码中看出,它是int32的别名(-231~231-1),对比byte(-128~127),可表示的字符更多。2、使用由于rune可表示的范围更大,所以能处理一切字符,当然也包括中文字符。在平时计算中文字符,可用rune。查询官方的解释如下:// rune is an alias for int32 and is equivalent to
转载
2024-04-25 16:45:47
75阅读
如果有使用内存存一些简单数据的功能,可以实现下面这样的带有过期时间的内存类 内存中存储k\
原创
2022-07-23 00:53:27
240阅读
golang实现urlencode函数、 urldecode函数,url加解密函数 func UrlEncode(str string) string { return url.QueryEscape(str) } func UrlDecode(str string) string { res, e
原创
2022-08-24 22:17:30
245阅读
fmt结构体占位符在Golang中有原生的 fmt 格式化工具去打印结构体,可以通过占位符%v、%+v、%#v去实现,这3种的区别如下所示:type User struct {
Name string
Age int
}
func main() {
user := User{
Name: "张三",
Age: 95,
}
fmt.Printf("%v\n", user)
转载
2024-07-01 07:44:35
39阅读
摘要在之前的几篇文章中,我们从如何实现最简单的HTTP服务器,到如何对路由进行改进,到如何增加中间件。总的来讲,我们已经把Web服务器相关的内容大概梳理了一遍了。在这一篇文章中,我们将从最简单的一个main函数开始,慢慢重构,来研究如何把API设计的更加规范和具有扩展性。1 构建一个Web应用我们从最简单的开始,利用gin框架实现一个小应用。在这这篇文章中,我先不使用MySQL和Redis,缓存和
转载
2024-05-17 15:42:25
106阅读
文章目录方法定义1.前言2.方法定义3.普通函数与方法的区别 方法定义1.前言Golang 方法总是绑定对象实例,并隐式将实例作为第一实参 (receiver)。•只能为当前包内命名类型定义方法。 • 参数 receiver 可任意命名。如方法中未曾使用 ,可省略参数名。 • 参数 receiver 类型可以是 T 或 *T。基类型 T 不能是接口或指针。 • 不支持方法
转载
2024-04-24 15:19:18
90阅读
上篇介绍了golang这门新的语言的一些语法。那么我们能用golang简单地写些什么代码出来呢?一、猜数字这个游戏的逻辑很简单。系统随机给你生成一个数,然后读取你猜的数字,再根据你猜的数字 跟系统生成的数字比较。告诉你结果这样。(1)随机生成一个数随机生成一个区间在1~100之间的数。
import math/rand
import time package main
import
转载
2024-03-06 10:40:03
80阅读
文章目录前言一、程序是什么??二、安装Golang环境2.1、下载2.2、安装2.3、配置环境变量三、Golang程序初体验3.1、下载VSCode3.2、目录结构3.3、编写hello,world!!3.3.1、开发步骤3.3.2、Golang语法要求和注意事项(重要)四、代码规范总结 前言大家好,我是无名小歌。 今天介绍golang基础、程序基本概率以及如何实现一个简单的Golang程序。
转载
2024-10-12 13:07:25
80阅读
如果一个任意类型T的方法集为一个接口类型的方法集的超集,则我们说类型T实现了此接口类型。实现关系在Go语言中是隐式的。两个类型之间的实现关系不需要在代码中显式地表示出来。Go语言中没有类似于 implements 的关键字。 Go编译器将自动在需要的时候检查两个类型之间的实现关系。接口定义后,需要实现接口,调用方才能正确编译通过并使用接口。接口的实现需要遵循两条规则才能让接口可用。接口被实现的条件
packagemainimport"fmt"funcRecursive(nint)int{ifn==0{return1}//相当于10987654321returnnRecursive(n-1)}funcmain(){fmt.Println(Recursive(10))}执行结果:sf@SFdeMacBook-Pro~/Documents/project/src/testg
原创
2018-09-21 22:04:35
1537阅读
hello/client 客户端package mainimport ( pb "go-study/micro-service/gRPC/src/proto/hello" // 引入proto包 "golang.org/x/net/context" "google.golang.org/grpc" "google.golang.org
原创
2022-07-18 21:14:32
718阅读
文章目录Nginx介绍Nginx的安装Nginx文件Nginx反向代理负载均衡nginx动静分离URLRewrite防盗链nginx高可用配置安全性Nginx限流Nginx缓存集成Lua脚本OpenRestrynginx工作原理 Nginx介绍Nginx是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强,Nginx专为性能优化而开发,能经受高负载的考验,有报告表明能支持高达50
最近利用闲暇时间边学边写把依赖注入、中间件编写的功能基础版本搞定了(边写边吃,好像胖了^_^).今天周日打算在发一篇文章,把路由和上下文处理这块梳理一下,逻辑可能不太通顺,希望各位大神不吝赐教。晓亮嘚吧嘚系列,今日继续哈代码我已上传到github,有兴趣的可以clone,别忘记给个小赞star哈,万分感谢 地址:https://github.com/zl8762385/koala回顾上回我们对写a
知识点导出功能的实现本文目标在本节,我们将实现对标签信息的导出、导入功能,这是很标配功能了,希望你掌握基础的使用方式。另外在本文我们使用了 2 个 Excel 的包,excelize 最初的 XML 格式文件的一些结构,是通过 tealeg/xlsx 格式文件结构演化而来的,因此特意在此都展示了,你可以根据自己的场景和喜爱去使用。配置首先要指定导出的 Excel 文件的存储路径,在 app.ini
介绍这个是在B站上看边看视频边做的笔记,这一章是Glang面向对象编程的项目练习配套视频自己去B站里面搜【go语言】,最高的播放量就是里面的注释我写的可能不太对,欢迎大佬们指出╰(°▽°)╯ 文章目录介绍(九)、项目练习一、家庭收支记账软件项目1.项目开发流程说明2.项目需求说明3.项目的界面4.项目代码实现1)实现功能2)面向过程修成面向对象二、客户管理系统项目1.项目需求分析2.项目的界面设计
摘要在上一篇文章中,我们聊了聊在Golang中怎么实现一个Http服务器。但是在最后我们可以发现,固然DefaultServeMux可以做路由分发的功能,但是他的功能同样是不完善的。由DefaultServeMux做路由分发,是不能实现RESTful风格的API的,我们没有办法定义请求所需的方法,也没有办法在API路径中query参数。其次,我们也希望可以让路由查找的效率更高。所以在这篇文章中
转载
2024-04-24 23:32:19
20阅读
堆一种特殊的树,满足下面两个条件:堆总是一棵完全二叉树。堆中某个节点的值总是大于等于(小于等于)其所有子节点的值。如果是大于等于情况就称为大顶堆,小于等于情况就是小顶堆。在Java语言中,我们可以直接使用容器PriorityQueue实现堆。Golang也存在类似的实现方式,但本文先介绍一下手动实现,再介绍如何使用golang提供的接口实现。一、手撕代码实现1.1、说明由堆的性质可知,堆是一颗完全
转载
2024-06-23 10:13:47
52阅读