Golang 常用库之jwt-go
本文地址 https://www.cnblogs.com/zichliang/p/17303759.html github地址:https://github.com/dgrijalva/jwt-go 何为 jwt token? 什么是JSON Web Token? JSON Web Token( »
本文地址 https://www.cnblogs.com/zichliang/p/17303759.html github地址:https://github.com/dgrijalva/jwt-go 何为 jwt token? 什么是JSON Web Token? JSON Web Token( »
Go 日志记录库:uber-go 的日志操作库 zap 使用 一、简介 zap 是 uber 开源的一个高性能,结构化,分级记录的日志记录包。 go1.20.2 zap v1.24.0 zap的特性 高性能:zap 对日志输出进行了多项优化以提高它的性能 日志分级:有 Debug,Inf »
简介 享元模式(Flyweight Pattern),是一种结构型设计模式。主要用于减少创建对象的数量,以减少内存占用和提高性能。它摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,让你能在有限的内存容量中载入更多对象。 当程序需要生成数量巨大的相似对象时,可能对内存有大量损耗 »
给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 »
目录 一.Visual Studio Code 下载安装 二.下载go 三.环境变量配置 Golang 是一种高性能的编程语言,它是 Google 开发的一门静态编译语言,与 Java 类似但不完全相同。它支持动态类型和强类型检查,并具有内置的垃圾收集器。Go 被认为是未来的编程语言,它在 »
目录 HTTP上传的文件的原理 Gin框架文件上传Demo 限制文件上传的大小 文件类型验证 文件上传进度-后台计算文件上传进度 HTTP上传的文件的原理 HTTP协议的文件上传是通过HTTP POST请求实现的,使用multipart/form-data格式将待上传的文件放入请求体中。 »
目录 声明和初始化 扩容时机 源码分析 go1.17 go1.18 内存对齐 总结 在 Go 语言中,有一个很常用的数据结构,那就是切片(Slice)。 切片是一个拥有相同类型元素的可变长度的序列,它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。 切片是一种引用类型,它有三个 »
今日记录一下 学习 golang 这门语言遇到的一些比较特殊的细节,供大家参考。 所以,在我们输出内容的时候,可以包含很多的非 ASCII 码字符。实际上,Go 是天生支持 UTF-8 的,任何字符都可以直接输出,甚至可以使用 UTF-8 中的任何字符作为标识符 »
原文链接: Go 语言切片是如何扩容的? 在 Go 语言中,有一个很常用的数据结构,那就是切片(Slice)。 切片是一个拥有相同类型元素的可变长度的序列,它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。 切片是一种引用类型,它有三个属性:指针,长度和容量。 底层源码定义如下: type »
目录 Golang的接口是什么 什么情况下要用接口 实战案例 多态的例子 定义通用方法的例子 松耦合的例子 实现插件化架构的例子 Golang的接口是什么 在 Golang 中,接口是一种类型,它是由一组方法签名组成的抽象集合。接口定义了对象应该具有的行为,而不关心对象的具体实现。实现 »
目录 1. 简介 2. 问题引入 2.1 问题描述 2.2 解决方案 3. 基本使用 3.1 使用方式 3.2 使用例子 4.使用注意事项 4.1 需要注意放入对象的大小 4.2 不要往sync.Pool中放入数据库连接/TCP连接 5. 总结 1. 简介 本文将介绍 »
目录 Map map定义 map基本使用 判断某个键是否存在 map的遍历 使用delete()函数删除键值对 按照指定顺序遍历map 元素为map类型的切片 值为切片类型的map Map实现原理 什么是Map key与value存储 hash冲突 Go中Map的使用 Go中Map的实 »
目录 channel channel类型 创建channel channel操作 发送 接收 关闭 无缓冲的通道 有缓冲的通道 close() 如何优雅的从通道循环取值 单向通道 通道遍历 异步通道 通道总结 channel 单纯地将函数并发执行是没有意义的。函数与函数 »
1. 简介 本文将介绍 Go 语言中的 sync.Pool并发原语,包括sync.Pool的基本使用方法、使用注意事项等的内容。能够更好得使用sync.Pool来减少对象的重复创建,最大限度实现对象的重复使用,减少程序GC的压力,以及提升程序的性能。 2. 问题引入 2.1 问题描述 这里我们实现一 »
本篇内容主要讲解“Go调度器学习之系统调用的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go调度器学习之系统调用的方法是什么”吧! 1. 系统调用 下面,我们将以一个简单的文件打开的系统调用,来分析一下Go调度器在系统调用时做了什么。 1.1 »
目录 示例 原理 实现 示例 首先模拟一个业务场景,有订单、产品、自定义订单三个结构体,订单中包含多个产品: type Order struct { Id string Products []Product } type Product struct { »
目录 分布式 id 生成器 worker_id 如何分配 开源示例:标准雪花算法 分布式锁 进程内加锁 尝试加锁 tryLock 基于 Redis 的 setnx 分布式锁 基于 ZooKeeper 分布式锁 总结 分布式 id 生成器 在分布式场景中,唯一 id 的生成算比较重 »
目录 快速上手 CGO 程序 基于 C 标准库实现最简单的 CGO 程序 基于自己写的 C 函数构建 CGO 程序 模块化以上例子 用 Go 实现 C 函数并导出 用 C 接口的方式实现 Go 编程 CGO 的主要基础参数 import "C" 语句说明 #cgo 语句说明 为什么要引入 »
目录 一、获取生成时间 1.使用Go编译时的链接参数来指定生成时间 2.使用C语言获取生成时间 二、获取Git版本信息 三、获取Go的相关信息 我们在编写软件时,一般会有版本号以及生成的时间,Go编译的程序中,如何添加当时的编译时间以及版本信息? C/C++语言,非常方便,可以直接使 »
目录 0. 简介 1. 系统调用 1.1 场景 1.2 陷入系统调用 1.3 从系统调用恢复 2. 小结 0. 简介 上篇博客,我们分析了Go调度器中的抢占策略,这篇,我们将分析一下,在系统调用时发生的调度行为。 1. 系统调用 下面,我们将以一个简单的文件打开的系统调用,来分 »