一、引言Go语言是一种静态强类型、编译型开发语言,编译器扮演着核心角色,它不仅负责将Go源代码转换成机器代码,还涉及代码的优化、错误检查和性能分析等关键环节。本文将为读者提供一个关于Go语言编译原理和编译过程的全面介绍。从编译器的基本工作原理讲起,逐步深入到Go语言特有的编译技术和优化策略。 帮助读者更好的学习Go语言的编译过程。二、 Go语言编译器概览1. ......
33
0
0
2024-07-17
一、引言哈希表和数组是最常见的数据结构,几乎所有的语言都会有数组和哈希表两种容器类型 。哈希表表示的是键值对之间映射关系,在Go语言中,通过map来表示哈希表。 本文将深入浅出介绍map的概念、使用方式、底层结构、性能、最佳实现等话题,帮助开发更好的理解和使用map。二、map的基本概念和使用1. 什么是map在Go语言中,map是一种内置的数据结构,用于存 ......
36
0
0
2024-07-06
golang简介Google是一家顶尖的创新与大神集结的地方,员工的工作方式也很特别,叫做“20%Time”,即允许工程师拿出20%的时间来研究自己喜欢的项目。比如说语音服务Google Now、谷歌新闻Google News、谷歌地图Google Map上的交通信息等,全都是20%时间的产物,而Go语言也是诞生于此。2007年9月20日的下午,在谷歌山景城 ......
67
0
0
2024-06-28
最近接了一个需求,要把一些现有的golang微服务对接到老平台的spring cloud微服务框架中。这些golang微服务提供了一些proto+grpc接口,对接老平台目的就是,想要快速复用这些后端的业务能力,这样一来,只需要涉及交互的设计和前端编码的工作,后端不需要用java重写一遍造轮子,并且这些golang微服务是之前上过线的,所以稳定性和准确性都有 ......
90
0
0
2024-06-28
基于Golang在单机下创建一个区块链前端时间wld很火,这段时间meme币也如火如荼,所以我打算看看区块链到底是什么。区块链定义区块链的数据结构废话不多说,区块链,其实是由区块头、区块节点组成区块节点中,又包括上一个区块的地址、Nonce、时间戳、区块信息等。这里说说区块信息。每一个区块链的用处,都是用来存储交易信息的,但是一个区块链只存储一个信息特别站内 ......
144
0
0
2024-06-11
切片是 Go 中的一种基本的数据结构,使用这种结构可以用来管理数据集合。切片的设计想法是由动态数组概念而来,为了开发者可以更加方便的使一个数据结构可以自动增加和减少。但是切片本身并不是动态数据或者数组指针。切片常见的操作有 reslice、append、copy。与此同时,切片还具有可索引,可迭代的优秀特性。一. 切片和数组关于切片和数组怎么选择?接下来好好 ......
216
0
0
2024-05-16
Go语言中的goroutine是一种轻量级的线程,其优点在于占用资源少、切换成本低,能够高效地实现并发操作。但如何对这些并发的goroutine进行控制呢?一提到并发控制,大家最先想到到的是锁。Go中同样提供了锁的相关机制,包括互斥锁sync.Mutex和读写锁sync.RWMutex;除此之外Go还提供了原子操作sync/atomic。但这些操作都是针对并 ......
254
0
0
2024-05-08
1、关于 golang 中的数据类型转换Go 语言中只有强制类型转换,没有隐式类型转换。2、数值类型之间的相互转换数值类型包括:整形和浮点型package main import "fmt" func main() { var a int8 = 20 var b int16 = 40 var c = int16(a) ......
237
0
0
2024-05-08
大家好,我是 frank。 欢迎大家点击标题下方蓝色文字「Golang 语言开发栈」关注公众号。 公众号主页点击右上角三个点图标, 设为星标,第一时间接收推送文章。01 介绍延迟队列是一种数据结构,用于处理需要在未来某个特定时间执行的任务。这些任务被添加到队列中,并且指定了一个执行时间,只有到达指定的时间点时才能从队列中取出并执行。在实际应用中,延迟队列可以 ......
272
0
0
2024-04-25
Token新开源Gateway,使用yarp实现的一个反向代理,支持界面操作动态添加集群添加路由绑定,并且支持动态添加域名绑定https证书,超强yarp+FreeSql+MiniApis纯原生接口实现。功能亮点在线配置域名证书:实时生效,无需重启服务。集群和路由的在线配置:动态添加和修改即时生效。日志面板:默认提供,方便监控。扩展性:简单的功能实现,便于根 ......
215
0
0
2024-04-25
不了解栈和堆在Go语言中,变量可以分配在栈上,也可以分配在堆上。栈内存和堆内存有着本质不同,会对数据密集型应用产生重大影响。本文主要讨论编译器将一个变量分配到栈上还是堆上规则。栈与堆栈是一种先进后出的数据结构,存储特定的goroutine的所有局部变量。当启动一个goroutine时,会分配2KB的连续内存作为栈空间。但是,栈大小在运行时并不是固定不变的,可 ......
275
0
0
2024-04-25
文章介绍:笔者对Go语言知识进行体系化总结,有一定全面性与深度。简介历史与发展Go 语言由Google开发,起源于 2007 年,开源于 2009 年。诞生背景,主要是解决其他语言的历史包袱重、复杂、编译慢等问题。其设计理念是less is more,追求简洁、高效、直接。由 Go 开发的开源项目:go、docker、k8s、etcd等。语言特性编译型,区别 ......
256
0
0
2024-04-21
简介计算机中的反射是指程序通过类型等手段检查其自身结构的能力,它是元编程的一种形式,同时也是一种很容易引起混淆的概念。在本文中,我们将阐述Go语言中的反射是如何工作的。每种语言的反射模型都是不同的(尽管也有许多语言不支持反射),但本文是关于Go的,所以在之后提到的“反射”就是单指“Go中的反射”。2022年新增:这篇博客文章是在2011年编写的,早于Go语言 ......
321
0
0
2024-03-30
Gin CORS 跨域请求资源共享与中间件目录Gin CORS 跨域请求资源共享与中间件一、同源策略1.1 什么是浏览器的同源策略?1.2 同源策略判依据1.3 跨域问题三种解决方案二、CORS:跨域资源共享简介(后端技术)三 CORS基本流程1.CORS请求分类2.基本流程四、CORS两种请求详解1.两种请求详解2.解决跨域问题:浏览器对于这两种请求的处理 ......
218
0
0
2024-03-27
前言相信大家对于缓存这个词都不陌生,但凡追求高性能的业务场景,一般都会使用缓存,它可以提高数据的检索速度,减少数据库的压力。本文旨在探讨实现一个支持多种 过期、淘汰 机制的本地缓存的核心原理,我将重点讲解如何支持多样化的过期和淘汰策略。如果需要查看完整的代码设计,请前往以下链接:https://github.com/chenmingyong0423/go-g ......
191
0
0
2024-03-27