go专题

Go 三色标记法:一种高效的垃圾回收策略

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO系列: 记录博主学习GO语言的笔

Go语言中的go.mod与go.sum

问题1:什么是go.mod以及它是用来解决什么问题的? go mod 是 Go 语言引入的包管理工具,用于解决 Go 语言项目在依赖管理方面的问题。 传统上,若不使用go mod,则需要要通过GOPATH来管理依赖,而这种方式存在一些问题: 如1. 包管理依赖不明确 2. 依赖库的版本管理 3. 需要手动管理同步依赖的复杂性等 而go mod可以帮助开发者在项目中明确管理依赖的版

client-go删除job同时删除job关联的pod

问题描述 client-go使用以下方式删除job时,并不会把其关联的pod删除,从而导致这些pod成为了孤儿(orphan): err := clientSet.BatchV1().Jobs(namespace).Delete(name, &metav1.DeleteOptions{}) 在删除job的时候将job关联的pod也删除的方法: propagationPolicy := m

client-go入门之1:创建连接Kubernetes集群的客户端

文章目录 简介使用 简介 我们可以使用Dashboard或kubectl来访问k8s的API,也可以使用编程语言,如Go,Java,Python作为客户端来访问k8s。client-go是一个使用go语言编写的库,用来连接k8s集群并对集群资源进行操作。 使用 以下代码使用go连上k8s集群,并查询集群的节点信息: package mainimport ("fmt"meta

【经典算法】LeetCode 22括号生成(Java/C/Python3/Go实现含注释说明,中等)

作者主页: 🔗进朱者赤的博客 精选专栏:🔗经典算法 作者简介:阿里非典型程序员一枚 ,记录在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法(公众号同名) ❤️觉得文章还不错的话欢迎大家点赞👍➕收藏⭐️➕评论,💬支持博主,记得点个大大的关注,持续更新🤞 ————————————————- 首先,请注意题目链接有误,您提供的链接是LeetCode 14,但题目

深入理解go语言反射机制

1、前言        每当我们学习一个新的知识点时,一般来说,最关心两件事,一是该知识点的用法,另外就是使用场景。go反射机制作为go语言特性中一个比较高级的功能,我们也需要从上面两个方面去进行学习,前者告诉我们如何去使用,而后者告诉我们为什么以及什么时候使用。 2、反射机制 2.1 反射机制的基本概念         在 Go 语言中,反射机制允许程序在运行时获取对象的类型信息、访问对

go语言:数据库sql查询保存任意数量字段的数据

1、查询任意列数的表,并输出 func search() {rows, _ := db.Query("select * from users") // 查询数据columns, _ := rows.Columns() // 查询到的字段名列表values := make([]any, len(columns)) // 根据字段数量,创建接收字段值的列表f

Go 语言学习笔记之数组与切片

大家好,我是码农先森。 数组与切片的区别 在 Go 语言中,数组和切片是两种不同的数据结构,它们之间有以下主要区别。 参数长度: 数组(Array):数组的长度是固定的,在创建时就需要指定数组的长度,无法动态改变;只有长度信息,通过 len() 函数获取。 切片(Slice):切片是对数组的一个引用,底层使用的是数组的数据结构,具有动态长度,可以动态增加或减少元素,实现动态扩容;有长度和容量

go语言进阶实战学习(逐行注释)(1):两协程并发交替打印数字和字母

要求: 并发两协程交替打印数字和字母。一个协程打印数字,一个协程打印字母。 输出: 12AB34CD56EF78GH910IJ1112KL1314MN1516OP1718QR1920ST2122UV2324WX2526YZ2728 思路: 两个 channel 控制两个协程进行交替打印。sync.WaitGroup 控制主协程等待子协程完成。 完整代码: package mainim

Go语言的诞生背景

人不走空                                                                              🌈个人主页:人不走空       💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨   目录       🌈个人主页:人不走空       💖系列专栏:算法专题 ⏰诗词歌赋:

【Rust日报】 2020-02-07 為什麼 Discord 要從go轉換到rust

為什麼 Discord 要從go轉換到rust 今天來講的更詳細一點 他們發現go程式每兩分鐘就會有一個延遲高峰 這個延遲高峰是因為go每兩分鐘就要清一次記憶體垃圾 這個問題出現在 go 1.9.2 也許最新版修掉了 不過已經對Discord沒有意義了 這次的測試是在 2019年5月進行的 結論: 有GC的語言不代表你可以不用處理記憶體問題 他會在未來轉化成另一種成本更高的問題,如果你有做起來的

新手指南:如何用 VSCode 编写 Go 语言入门代码

本章教程,主要介绍如何在VSCODE中,运行GO语言的入门代码。 一、准备一个GO语言代码 一个很简单的代码,用GO语言在控制台打印输出:Hello, World! package mainimport "fmt"func main() {fmt.Println("Hello, World!")} 二、安装GO语言SDK 下载地址:

Go自定义数据的序列化流程

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO系列: 记录博主学习GO语言的笔

Webstorm vue项目@路径不能跳转到对应资源,提示Cannot find declaration to go to

Webstorm vue项目@路径不能跳转到对应资源,提示Cannot find declaration to go to 我们 ctrl加鼠标左键点击方法会失效,看了网上很多教程在说需要在此处配置一下webpack.config.js的文件路径,而且指向了node_modules\@vue\cli-service\webpack.config.js 我试了好多次,不行,不论对错,这里

MongoDB的Go语言操作示例总结

目录 前提条件 连接到MongoDB 简单示例 插入文档 查询文档 查询单个文档 查询多个文档 更新文档 更新单个文档 更新多个文档 删除文档 删除单个文档 删除多个文档 聚合管道 常见聚合操作符 $match $group $project $sort $limit $skip $lookup $unwind  示例 Go中的聚合管道使用示例

将 Aira2 集成到 Go项目中

介绍 Aria2 简介 Aria2 是一个轻量级的、跨平台的命令行下载工具,具有强大的多连接、多协议支持,以及灵活的任务控制功能。它可以同时从 HTTP、HTTPS、FTP、BitTorrent 和磁力链接等来源下载文件,并支持断点续传,可以在下载过程中暂停和恢复任务。Aria2 采用 C++ 编写,是一个高效、稳定且功能丰富的下载工具,在开源社区中得到了广泛的应用和认可。 Go 语言简介

go的有栈和无栈

在 Go 的 HTTP 处理中,“有栈”和“无栈”通常是指处理并发请求时的不同方式。 “有栈”的方式通常是指使用传统的基于线程或协程的并发模型,每个并发请求都有自己独立的栈空间。 例如,使用标准库中的 net/http 处理并发请求,默认情况下每个请求都会在一个独立的 Goroutine 中处理,每个 Goroutine 都有自己的栈。 package mainimport ("log""net

Go微服务: redis分布式锁在集群中可能遇到的问题及其解决方案

概述 我们的 redis 一般都是集群来给我们程序提供服务的,单体的redis现在也不多见 看到上面是主节点redis和下面是6个重节点redis,主节点和重节点的通讯都是畅通没问题的这个时候,我们有 gorouting 写我们的数据,那它就会用到我们的setNX写完数据内部是自动同步的,就是你的这个数据通过主节点同步到这些从节点了下面又有我们的 gorouting 去读我们的从节点

go 通过hash,查币安链交易代码

一个简单的示例代码,用于通过哈希值查询币安链交易:   package main   import (     "encoding/json"     "fmt"     "io/ioutil"     "net/http" )   func queryBinanceTransactionByHash(hash string) {     url := "https://api.binanc

【GO】rotatelogs库和sirupsen/logrus库实现日志功能的实践用例

“github.com/sirupsen/logrus” 是一个 Go 语言的日志库,它提供了一种简单、灵活的方式来记录日志。该库的主要特点包括: 支持多种日志输出目标,如控制台、文件等。 支持日志轮转,可以按照时间或文件大小进行轮转。 支持日志格式化,可以根据需要自定义日志格式。 支持异步日志记录,可以提高日志记录性能。 使用 “github.com/sirupsen/logrus” 库的基本

Go语言开发框架GoFly已集成数据可视化大屏开发功能,让开发者只专注业务开发,本文指导大家如何使用

前言 框架提供数据大屏开发基础,是考虑当前市场软件应用有一大部分是需要把业务数据做出大屏,很多政府项目对大屏需求特别高,还有生产企业项目也对大屏有需求,没有提供基础规范的后台框架,在开发大屏需要很多时间去基础搭建,如独立起一个项目,或者改造框架,因为框架都有默认layout框框,和登录权限等无法单独打开全屏。还有个特别麻烦的是,屏幕兼容性,因为大屏一般都是在很大显示屏上展示和平时开发电脑屏幕比不

Go单测时的Parallel

在 Go 语言中,t.Parallel() 通常用于测试代码中,表示将当前的测试用例标记为可以并行执行。 当在测试函数中调用 t.Parallel() 后,测试框架会尝试在多个 goroutine 中并行地执行被标记的测试用例。 这可以显著提高测试的执行效率,尤其是在有大量独立的测试用例时。 package mainimport ("testing")func TestA(t *testing

Go微服务: redis分布式锁保证数据原子操作的一致性

概述 随着云计算和大数据技术的飞速发展,分布式系统已经成为现代IT架构的重要组成部分在分布式系统中,数据的一致性是一个至关重要的挑战,特别是在并发访问和修改共享资源的场景下分布式锁是一种跨进程、跨机器节点的互斥锁,用于控制多个节点对共享资源的访问其核心目标是确保在分布式系统中,同一时刻只有一个节点能够访问特定的共享资源,从而实现数据的一致性分布式锁的实现方式多种多样,包括基于数据库、缓存(如Re

JetBrains GoLand 2024 mac/win版:高效开发,Go无止境

JetBrains GoLand 2024是一款专为Go语言开发者设计的集成开发环境(IDE),为开发者带来了更加高效、智能和便捷的编程体验。 GoLand 2024 mac/win版获取 在代码编辑方面,GoLand 2024提供了全行代码补全功能,通过利用先进的深度学习模型,能够智能预测并自动补全整行代码,大大提高了编码速度和效率。同时,它还支持AI特性增强,能够分析项目代码,学习

go语言day2

使用cmd 中的 go install ; go build 命令出现 go cannot find main module 错误怎么解决? go学习-问题记录(开发环境)go: cannot find main module; see ‘go help modules‘_go: no flags specified (see 'go help mod edit')-CSDN博客

go sync包(二) 互斥锁(二)

互斥锁 Mutex mutex 的 加解锁很简单: var mutex sync.Mutexmutex.Lock()defer mutex.Unlock()// 加锁期间的代码逻辑 加锁 // Lock locks m.// If the lock is already in use, the calling goroutine// blocks until the mutex i