用 Go 来实现链表、栈、队列、散列表、树、二叉树、堆、图概念散列表 又名哈希表 或 Hash表 散列表是根据关键码值(Key value)而直接进行访问的数据结构散列表是数组的一种扩展,有数组演化而来。常见应用场景Go 中的 map实现散列表package main import ( "fmt" "os" ) // 定义员工 ......
367
0
0
2022-10-20
话说用 Golang 跑「队列任务」需要几步?使用 Goravel ,四步不能再多了!第一步:生成任务类go run . artisan make:job HelloWorld 任务类结构package jobs type HelloWorld struct { } //Signature The name and signature of ......
340
0
0
2022-10-19
本篇文章已收录于《Golang修养之路》www.yuque.com/aceld/golang/ithv8f 第一章第9篇Golang的内存管理及设计也是开发者需要了解的领域之一,要理解 Go 语言的内存管理,就必须先理解操作系统以及机器硬件是如何管理内存的。因为 Go 语言的内部机制是建立在这个基础之上的,它的设计,本质上就是尽可能的会发挥操作系统层面的优势 ......
519
0
0
2022-10-18
本篇文章已收录于《Golang修养之路》www.yuque.com/aceld/golang/zhzanb 第一篇第5章节本章节含视频版:视频链接地址:www.bilibili.com/video/BV1wz4y1y7K...)垃圾回收(Garbage Collection,简称GC)是编程语言中提供的自动的内存管理机制,自动释放不需要的内存对象,让出存储器 ......
334
0
0
2022-10-18
文章介绍本文主要介绍我学习protobuf的理解和总结、主要介绍protobuf的基本类型、option的作用、proto文件中导入其他proto文件、嵌套message、enum枚举类型、map类型、proto中内置的timetram类型及service{}protobuf介绍protobuf全称Google Protocol Buffers,是googl ......
545
0
0
2022-10-17
前言我们在写应用时,基本都会用到配置文件,从各种 shell 到 nginx 等,都有自己的配置文件。虽然这没有太多难度,但是配置项一般相对比较繁杂,解析、校验也会比较麻烦。本文就给大家讲讲我们是怎么简化配置文件的定义和解析的。场景如果我们要写一个 Restful API 的服务,配置项大概有如下内容:Host,侦听的 IP,如果不填,默认用 0.0.0.0 ......
368
0
0
2022-10-13
用 Go 来实现链表、栈、队列、散列表、树、二叉树、堆、图线性结构:数据组成一条线的结构,只有前后方向(数据 链表 栈 队列)非线性结构:树、二叉树、堆、图栈的认识第一印象:先进后出结构栈(Stack)又叫堆栈,是限定只能在一端进行插入和删除操作的线性表,并且满足后进先出(LIFO)的特点,即最后插入的最先被读取。我们把允许插入和删除的一端叫做栈顶,另一个端 ......
396
0
0
2022-10-12
总述在搬砖过程中遇到了如下两个问题:身份认证模块因项目结构体不同可复用性不高。逻辑是简单的生成和解析 JWT, 但是在不同的项目中有独自的用户结构体,导致每次需要复写大量的代码去实现相同功能但是解析出来的用户信息不同。分页字段、工具不可复用。带有分页字段的API 肯定是每个项目中都会有的问题,简答的来说每个分页API 都需要携带一些相同分页字段。在团队之间没 ......
378
0
0
2022-10-12
区别go build:用于测试编译包,在项目目录下生成可执行文件(有main包)。go install:主要用来生成库和工具。一是编译包文件(无main包),将编译后的包文件放到 pkg 目录下($GOPATH/pkg)。二是编译生成可执行文件(有main包),将可执行文件放到 bin 目录($GOPATH/bin)。使用go env我的项目结构如下:src ......
354
0
0
2022-10-12
goroutinechannel通道 (goroutine通信)package main import "fmt" func main() { var ch1 chan bool ch1 = make(chan bool) go func() { for i := 0; i < 10; i++ { ......
329
0
0
2022-10-11
原文:A gentle introduction to generics in Go by Dominik Braun万俊峰Kevin:我看了觉得文章非常简单易懂,就征求了作者同意,翻译出来给大家分享一下。本文是对泛型的基本思想及其在 Go 中的实现的一个比较容易理解的介绍,同时也是对围绕泛型的各种性能讨论的简单总结。首先,我们来看看泛型所解决的核心问题。问 ......
399
0
0
2022-10-11
最近花了很多时间在学习 Go 语言及高级语言通用的语言特性和机制,比如说高级语言的内存分配和垃圾回收(有垃圾回收特性的语言),类型系统,反射和泛型等等。大多数高级语言之间都有想通的语言特性和机制,如果掌握了这些通用的知识,不仅可以对语言有更深刻的理解,还能举一反三,快速学习其他编程语言。简介面向对象语言设计最早可以追溯到 SIMULA 67,但直到 1980 ......
413
0
0
2022-10-11
es安装案例如下package main import ( "context" "encoding/json" "errors" "fmt" "github.com/olivere/elastic/v7" "reflect" //"reflect" "tim ......
456
0
0
2022-10-11
大家好,好久不见,由于公司的工作实在太忙,耽搁了好久,实在抱歉。今天咱们开始写商城里面的购物车服务,废话少说咱们开始。注:竖排 … 代码省略,为了保持文章的篇幅简洁,我会将一些不必要的代码使用竖排的 . 来代替,你在复制本文代码块的时候,切记不要将 . 也一同复制进去。文章写的不清晰的地方可通过 GitHub 源码进行查看, 也感谢您指出不足之处,欢迎大佬指 ......
419
0
0
2022-10-10
Golang中的errorGolang中的 error 就是一个简单的接口类型。只要实现了这个接口,就可以将其视为一种 errortype error interface { Error() string } error的几种玩法翻看Golang源码,能看到许多类似于下面的这两种error类型哨兵错误var EOF = errors.New(" ......
505
0
0
2022-10-10