用了Go匿名结构体,搬砖效率更高,产量更足了 今天给大家分享一个使用匿名结构体,提升Go编程效率的小技巧,没什么技术深度,属于在日常写代码过程中积累下来的一个提升自己编程效率的小经验。 这个技巧之所以提效率主要体现在两方面: 减少一些不会复用的类型定义 节省纠结该给类型起什么名字的时间 尤其第二项,通过匿名结构体这个名字就能体现出来,它本身就没有类型名,这能节省不少想名字的时间。再一个也能减少起错名字给其他人带来的误解,毕竟并不是所有人编程时 开发运维 2023-08-14 捡田螺的小男孩
深入探索 Go 1.21.0 中的 maps 工具库 Go 版本:1.21.0 前言 随着 Go 1.21.0 版本的发布,新增了两个实用的泛型工具库:maps 和 slices,它们分别提供了处理映射(map)和切片常见操作的函数,减少了我们重复造轮子的过程,提高开发效率。本文将会对 maps 工具库进行介绍。 准备好了吗?准备一杯你最喜欢的咖啡或茶,随着本文一探究竟吧。 Maps maps 是一个泛型工具库,该库包含了对任何类型都支持的实用函数, 开发运维 2023-08-14 捡田螺的小男孩
Go context.WithCancel()的使用 WithCancel可以将一个Context包装为cancelCtx,并提供一个取消函数,调用这个取消函数,可以Cancel对应的Context Go语言context包-cancelCtx[1] 疑问 context.WithCancel()取消机制的理解[2] 父母5s钟后出门,倒计时,父母在时要学习,父母一走就可以玩 package main import ( "context" "fmt" 开发运维 2023-08-13 醒在深海的猫
Go语言网络编程入门:TCP、HTTP、JSON序列化、Gin、WebSocket、RPC、gRPC示例 Go语言网络编程入门:TCP、HTTP、Gin、WebSocket、RPC、gRPC示例 在本文中,我们将介绍Go语言中的网络编程的不同方式,包括TCP、HTTP、Gin框架、WebSocket、RPC、gRPC的介绍与连接实例,并对所有示例代码都给出了详细的注释,最后对每种模式进行了总结。 1. TCP网络编程 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,提供可靠 开发运维 2023-08-13 大猫
go语言切片做函数参数传递+append()函数扩容 go语言切片函数参数传递+append()函数扩容 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 二叉树递归go代码: var ans [][]int func pathSum(root *TreeNode, targetSum int) ( [][]int) { ans := make([][]int, 0) 开发运维 2023-08-13 张二河
GO语言并发编程入门:Goroutine、Channel、Context、并发安全、GMP调度模型 GO语言并发编程入门:Goroutine、Channel、Context、并发安全、GMP调度模型 1.GO并发介绍 并发:多线程程序在一个核的cpu上运行。 并行:多线程程序在多个核的cpu上运行。 由上可知并发不是并行,并行是直接利用多核实现多线程的运行,并发则主要由切换时间片来实现”同时”运行,go可以设置使用核数,以发挥多核计算机的能力。 Go语言之所以被称为现代化的编程语言,就是因为它在 开发运维 2023-08-13 三掌柜
clientgo实战之六:时隔两年,刷新版本继续实战 欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):github.com/zq2599/blog… 系列文章链接 client-go实战之一:准备工作 client-go实战之二:RESTClient client-go实战之三:Clientset client-go实战之四:dynamicClient client-go实战之五:DiscoveryClient 时隔两年,《c 云计算 2023-08-13 LOVEHL^ˇ^
Go 语言入门指南:基础语法和常用特性解析 | 青训营 range range是go中的一种循环,被广泛应用于slice,map,channel的遍历中,但是很多时候,它运行的结果似乎和我们预期不一样。 下面是一个例子: v := []int{1, 2, 3} for _, value := range v { v = append(v, value) } fmt.Println(v)//[1 2 3 1 2 3] 你可能会觉得这个程序无法停下来 开发运维 2023-08-13 法医
又有新功能!Go 将有生成新模板的 gonew 工具链 大家好,我是煎鱼。 不知道大家平时在日常工作中,会不会遇到一个问题?公司用着微服务架构,经常要创建新的服务,需要一个应用模板去初始化新的服务,减少 ctrl+c+v,转为相对自动化。 不同团队根据 Leader 的喜好、要求不同,应用模板又会不同。有的喜欢 DDD、有的喜欢 MVC、有的大道至简即可。每家公司都会延伸出一个工具链做这个事情。 新工具:gonew 生成模板 在 Go 社区也出现了这种 开发运维 2023-08-13 共饮一杯
Go单元测试对数据库CRUD进行Mock测试 目录 前言 Go-sqlmock 安装 使用示例 miniRedis 安装 使用示例 总结 前言 最近在实践中也总结了一些如何用表格驱动的方式使用 gock Mock测试外部接口调用。以及怎么对GORM做mock测试,这些等这篇学完基础后,后面再单独写文章给大家介绍。 这是Go语言单元测试系列教程的第3篇,介绍了如何使用go-sqlmock和miniredis工具进行Mysql和Redis的moc 数据运维 2023-08-13 张二河
Go 1.21.0 正式发布 导读:Go语言的最新版本1.21.0发布了,一起来看看有什么新鲜和先进的。 Go 1.21.0 昨天在其研发团队官方网站和Google小组上宣布正式发布了。 目前,我在mac上brew的安装包版本仍为1.20,我们可以用下载安装程序的方法来更新。 更新与特性总结 此版本大部分变化集中在工具链、运行时和库的实现。与往常一样,该版本保持了 Go 1 的兼容性承诺;事实上,Go 1.21 改进了这一承诺 运维资讯 2023-08-12 张二河
使用Go驱动强力访问MSSQL数据库(mssql go驱动) ### 使用Go驱动强力访问MSSQL数据库 随着微软的发展,MSSQL数据库作为常用的关系型数据库,与各种开发领域紧密相关。当我们需要访问MSSQL数据库时,驱动代码可以帮助我们访问它。Go语言是一种具有强大功能的门户编程语言,由于其简洁、功能强大的特点,Go语言可以作为快速、可靠的MSSQL数据库访问驱动代码。 要使用Go语言访问MSSQL数据库,我们首先需要在本地安装Go语言环境。安装好环境 数据运维 2023-08-12 醒在深海的猫
Go语言与MSSQL数据库连接池的实现(go mssql 连接池) Go语言和MSSQL数据库之间的连接池化可以有效地提高数据库操作的性能,并减少节省资源的开销。Go连接池的实现有以下两个步骤:第一步,新建一个连接池;第二步,使用“Get”函数获取数据库连接。下面的代码片段分两步来实现Go语言连接MSSQL数据库池: //Step 1:建立mssql连接池 url := fmt.Sprintf(“DSN=******;UID=sa;PWD=***;DATABASE 数据运维 2023-08-12 法医
Debian安装Gogs以及Debian安装Go (图片来源网络,侵删) 本文目录导读: 前言 Debian安装Gogs Debian安装Go 为您分享 前言 在Linux系统中,Debian是一种非常流行的发行版之一,而Gogs和Go则是开源社区中备受欢迎的项目。Gogs是一个轻量级的自助Git服务,它提供了一个简单易用的界面,使您可以轻松地搭建和管理自己的Git仓库。而Go是一种高性能的编程语言,广泛应用于构建可靠和高效的软件。 在本文中,我 系统运维 2023-08-12 三掌柜
使用Go语言实现Redis数据库(用go实现redis) 就职于一家互联网公司的我,正好需要使用Go语言实现Redis数据库。作为一款开源的非关系型数据库,Redis可以支持几乎所有类型的数据,例如字符串、字典、链表、集合和有序集合,在它的基础上可以实现海量的数据处理。 1、安装Go语言 开始之前,必须先安装Go语言,可以通过官网下载安装包,安装完成后,打开终端运行go version,就可以查看安装的Go语言版本。 2、安装Redis客户端 为了实现G 数据运维 2023-08-11 法医
go语言可以写数据库么 Go语言可以写数据库。Go语言和其他语言不同的地方是,Go官方没有提供数据库驱动,而是编写了开发数据库驱动的标准接口,开发者可以根据定义的接口来开发相应的数据库驱动;这样做的好处在于,只要是按照标准接口开发的代码,以后迁移数据库时,不需要做任何修改,极大方便了后期的架构调整。 本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。 数据库(database)是按照数据结构来 数据运维 2023-08-11 泡泡
轻松入门Go数据库:快速上手或者Go数据库选择:如何为你的项目选择合适的数据库 (go 数据库) Go语言是一门非常流行的编程语言,它简单高效、易于学习和理解,并且快速搭建产业链,被越来越多的人使用。在Go语言中,数据库是一个非常重要的组成部分,可以让我们存储数据、查询数据、统计数据、分析数据等等。在这篇文章中,我们将探讨如何轻松入门Go数据库,以及如何选择适合你项目的合适数据库。 入门 在如何入门之前先来介绍一下Go语言的几种数据库: 1. MySQL MySQL是一个开源的关系型数据库管理 数据运维 2023-08-11 大树
Go1.21 那些事:泛型库、for 语义变更、统一 log/slog、WASI 等新特性,你知道多少? 大家好,我是煎鱼。 Go1.21 在昨天晚上 11 点 30 多的时候,终于发布出来了,真的是...日常拖迭代了,一直往后挪。之前说在前面迭代实现的功能,又放到这个迭代里发布了。 图片 本次新版本的大部分变更都在工具链、运行时和库的实现上,继续保持了 Go1 的兼容性承诺。(甚至增强了... 😂) 想要体验的同学可以按如下命令下载: 图片 关于本次 Go1.21 相关特性,我又看了一遍 Relea 开发运维 2023-08-10 三掌柜
GoZero 是如何做路由管理的? go-zero 是一个微服务框架,包含了 web 和 rpc 两大部分。 而对于 web 框架来说,路由管理是必不可少的一部分,那么本文就来探讨一下 go-zero 的路由管理是怎么做的,具体采用了哪种技术方案。 路由管理方案 路由管理方案有很多种,具体应该如何选择,应该根据使用场景,以及实现的难易程度做综合分析,下面介绍常见的三种方案。 注意这里只是做一个简单的概括性对比。 标准库方案 最简单的 开发运维 2023-08-10 宇宙之一粟
开源代码扫描工具 Socket 添加 Go 语言支持 继日前宣布完成 2000 万美元的 A 轮融资后,开源代码扫描工具 Socket 紧接着宣布新增了对 Go 语言的支持;此前其仅支持 JavaScript 和 Python 语言。 “在过去的几个月中,我们观察到针对 Golang 的供应链攻击有所增加。意识到这种迫在眉睫的威胁后,我们知道是时候将 Socket 已经验证的主动式防护引入 Go 了。” Socket 方面还介绍了在添加 Go 支持过 开发运维 2023-08-10 LOVEHL^ˇ^