最近在学习Go, 打算写点小项目来练手,实现的过程中发现需要在slice上执行Filter操作,但是标准库没有提供,像go-stream这些库提供的又是比较高级的抽象,所以就有了Lapluma这个库 仓库地址:lapluma 核心设计理念 Lapluma旨在提供一套简洁、可组合且易于理解的数据处理工 ...
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记十三之context 在 Golang 里,context 包提供了很多比如传递截止时间、取消信号、传递数据等操作的标准方式,用于在跨 API 边界、进程和 goroutine之间进行。 这一篇笔记详细介绍一下 context 包相关 ...
在 Go 语言中,append 后面的三个点 ... 是展开操作符(spread operator) 基本概念 ... 用于将切片展开为独立的元素,传递给函数或 append 函数。 代码: s4 = append(s4[:2], append([]int{3}, s4[2:]...)...) 分解 ...
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记十二之defer、panic、error 本篇笔记介绍一下 Golang 里 defer、panic 和 error 的相关概念和操作,以下是本篇笔记目录: defer panic error 1、defer defer 语句用于延迟 ...
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记十之goroutine和channel 这一篇介绍 Golang 里的 goroutine 和 channel 通道。 以下是本篇笔记目录: goroutine channel goroutine 与 channel 的使用 1、go ...
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记九之方法与接口 本篇笔记介绍 Golang 里方法和接口,以下是本篇笔记目录: 方法 接口 用结构体实现类的功能 1、方法 首先介绍一下方法。 方法是与特定类型关联的函数,我们在实现一个函数前,绑定一个类型,就实现了这个类型的方法。 ...
大家好,我是 Java陈序员。 在企业运营中,知识分享与团队协同面临着诸多难题,缺乏统一平台、知识更新不及时等。 今天,给大家介绍一款开源的 Wiki, 可快速构建企业和团队知识分享平台! 关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。 项目介绍 ...
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记八之函数 本篇笔记介绍 Golang 里函数相关的内容,以下是本篇笔记目录: 函数的定义语法 函数返回值 可变参数函数 匿名函数 闭包 1、函数的定义语法 函数的定义格式如下: func 函数名(参数列表) (返回值列表) { 函数体 ...
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记七之指针,值类型和引用类型 本篇笔记介绍 Golang 里的指针,值类型与引用类型相关的概念,以下是本篇笔记目录: 指针 值类型与引用类型 内存逃逸 减少内存逃逸的几种方案 1、指针 在计算机内存中,每个变量都存储在特定的内存地址上, ...
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记六之流程控制 本篇笔记介绍 Golang 里流程控制相关的一些语法,以下是本篇笔记目录: 条件语句 循环语句 1、条件语句 1. if-else 语句 if-else 语句的基本语法如下: if condition { }else i ...
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记五之结构体 本篇笔记介绍 Golang 中的结构体。 在 Go 中,结构体是一种用户自定义的数据类型,可以将不同类型的数据组合在一起。 以下是本篇笔记目录: 结构体的定义和使用 嵌套结构体 创建结构体递归结构 结构体标签 1、结构体的 ...
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记四之map 这一篇笔记介绍 Golang 里 map 相关的内容,以下是本篇笔记目录: map 的概念及其声明与初始化 map 的增删改查 map 的遍历 1、map 的概念及其声明与初始化 map,即映射,是 Golang 里无序键 ...
下载 linux 版本的 go 点击官网前往下载页面 根据自己的 linux 环境下载最新版本的 golang 推荐复制下载地址后使用 wget wget https://golang.google.cn/dl/go1.19.linux-amd64.tar.gz 执行 tar 解压到 /usr/lo ...
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记三之数组和切片 这一篇笔记介绍 Golang 里的数组和切片,以下是本篇笔记目录: 数组定义和初始化 数组属性和相关操作 切片的创建 切片的长度和容量 切片的扩容 切片操作 1、数组定义与初始化 第一篇笔记的时候介绍过数组的定义与初始 ...
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记二之字符串及其操作 这一篇笔记主要介绍 Golang 字符串相关处理,以下是本篇笔记目录: 字符串的定义和初始化 字符 字符串操作 1、字符串的定义和初始化 在 Go 里,我们可以使用双引号和反引号来对定义字符串。 1. 双引号 双引 ...
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记一之变量声明和类型介绍 这一篇笔记主要介绍 Golang 的基础内容,包括 Golang 的运行,变量声明以及 Golang 里的各种数据类型。 以下是本篇笔记目录: Golang 的运行 变量声明 Golang 数据类型 fmt 函 ...
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 我仍然在尝试优化 VictoriaLogs 的性能,手贱开始改以下这个函数: // lib/logstorage/bloomfilter.go func in ...
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 引子 VictoriaMetrics (Github: https://github.com/VictoriaMetrics/VictoriaMetrics) ...
Gogs —— 一款基于 Go 实现的极易搭建的自助 Git 服务,支持 Go 语言支持的所有平台,包括 Linux、macOS、Windows 和基于 ARM 的操作系统。 ...
最近一直在重构优化老系统,所以性能优化相关的文章会比较多。 这次的是有关循环处理map时的性能优化。预分配内存之类的大家都知道的就不多说了,今天来讲点大伙不知道的。 要讲的一共有三点,而且都和循环处理map有关。 不要用for-range循环清空map 这里要讨论的“清空”是指删除map中所有键值对 ...