Go 1.18 新增三大功能之一“模糊测试”使用方式 在 Go 1.18 之前,Go 语言支持功能测试、基准测试和示例测试,在 Go 项目开发中,使用最多的是功能测试,读者朋友们应该都比较熟悉功能测试的使用方式了。,在 Go 1.18 中,Go 语言新增... 网站建设# go# 功能测试# 模糊 4年前330
Go Scheduler 的 GMP 模型 ,Go 为了自身 goroutine 执行和调度的效率,自身在 runtime 中实现了一套 goroutine 的调度器,下面通过一段简单的代码展示一下 Go 应用程序在运行时的 goroutine... 网站建设# go# goroutine# 内核 4年前330
Go 在信创这一块会输给 Java,想不通...... 大家好,我是投稿的网友草莓。,Go 语言已经开源 10+ 年,从高的关注度,再到云原生时代引爆学习 Go 的浪潮,再到现在的数年后。,其搜索热度和 TIOBE 排名基本维持如下:,,最新的排名第是第 ... 网站建设# go# java# 信创 4年前320
Go语言中什么是Goroutines Goroutine是一个被Go运行时管理的轻量级线程(A goroutine is a lightweight thread managed by the Go runtime)。为什么没有采用现有的... 网站建设# go# goroutine# goroutines 5年前320
Go 语言如何实现字符串切片反转函数 Go 语言不像其他语言如 Python,有着内置的 reverse() 函数,先来看一下 Python 中对于列表的反转方法,然后我们再来学习如果在 Go 语言中实现相同的功能。,reverse 算... 网站建设# go# reverse# 函数 5年前320
【Go必知必会】错误和异常、CGO、fallthrough 这篇文章将详解「Go必知必会」的知识点:,错误指的是可能出现问题的地方出现了问题,比如打开一个文件时失败,这种情况在人们的意料之中,异常指的是不应该出现问题的地方出现了问题,比如引用了空指针,这种情... 网站建设# error# go# 壁纸 5年前320
Go 程序太大了,能要个延迟初始化不? 大家好,我是煎鱼。,在公司的不断发展中,一开始大多是大单体,改造慢了,一个仓库会有使用十几年的情况,仓库的规模基本是不断增大的过程。,影响之一就是会应用程序打包后的体积越来越大,不知道被用哪里去了... 网站建设# go# 仓库# 代码 5年前320
Go进阶面试题详解 逃逸分析是Go语言中的一项重要优化技术,可以帮助程序减少内存分配和垃圾回收的开销,从而提高程序的性能。下面是一道涉及逃逸分析的面试题及其详解。,有如下Go代码:,请问上面的代码中,变量x是否会发生逃逸... 网站建设# go# 函数# 分配内存 3年前310
Go 语言代码风格规范-概述篇 每门开发语言都会有其特有的风格规范(亦或指南),开发者遵循规范能带来显著收益,有效促进团队协作、减少 bug 错误、降低维护成本等。,Google 开源的 Google Style Guides ... 网站建设# go# google# https 4年前310
向 Swift 学习?Go 考虑简单字符串插值特性 大家好,我是煎鱼。,在日常开发 Go 工程中,我们经常会用 fmt.Printf 或 fmt.Sprintf 去写类似的拼装字符串的业务。,如下代码:,这业务迭代迭代着,日积月累的,有一部分常变的拼... 网站建设# fmt# go# 代码 5年前310
Go 语言 Web 应用怎么使用 Nginx 部署? Golang 标准库 net/http 和 Go 语言 Web 框架,比如 Gin、Beego 和 Iris 等,可以很方便地构建一个 Web 应用。,Nginx 是一个 HTTP 和反向代理服务器... 网站建设# go# nginx# web 5年前310
Go语言中通过WaitGroup控制并发 Channel能够很好的帮助我们控制并发,但是在开发习惯上与显示的表达不太相同,所以在Go语言中可以利用sync包中的WaitGroup实现并发控制,更加直观。,我们将之前的示例加以改造,引入sync... 网站建设# go# waitgroup# 函数 3年前300
聊聊 Go 如何打包与压缩文件 文件的打包、压缩与解压缩是经常会使用到的功能,我们可以通过 tar、gzip 等工具来完成这些操作。在 Go 中,标准库archive与compress为我们提供了这些能力,通过本文示例,你会发现以 ... 网站建设# go# tar# 压缩 4年前300
在 Go 语言中使用 exec 包执行 Shell 命令 exec 是 os 包中的一个子包,它可用于使用 Go 运行外部命令。Go exec 命令教程展示了如何在 Golang 中执行 shell 命令和程序。,要使用这个包,我们需要按如下方式导入:,我们... 网站建设# exec# go# shell 3年前290
试试动 Go recover 刀子,看看能不能优化错误处理? 大家好,我是煎鱼。,Go 的错误处理一直是表现最突出的一块地方,许许多多的同学都提出了各种提案,例如:引入 try-catch、用 panic 代替 if err != nil、引入新的关键字等。但这... 网站建设# go# recover# 提案 4年前290
你有犯过这些 Go 编码错误吗? 大家好,我是煎鱼。,在用 Go 编程时,总会遇到各种奇奇怪怪的错误,国内外已经有许多小伙伴总结过(参考链接见参考),感觉都能凑一桌了。,希望对大家有所帮助。,在程序中声明(定义)了一个 map,然后直... 网站建设# go# 代码# 声明 5年前290
Go 语言错误处理为什么更推荐使用 Pkg/Errors 三方库? Go 语言项目开发中,我们通常需要在代码逻辑中进行错误处理,Go 官方标准库 errors 为我们提供了一些方法,比如 New,Unwarp,Is 和 As。,其中,我们用的最多的是 New,但... 网站建设# errors# go# new 4年前280
面试官:Net/Http库知道吗?能说说优缺点吗? 哈喽,大家后,我是asong;这几天看了一下Go语言标准库net/http的源码,所以就来分享一下我的学习心得;为什么会突然想看http标准库呢?因为在面试的时候面试官问我你知道Go语言的net/ht... 网站建设# go# http# net 5年前280
GoFrame的数组比PHP的数组还好用!? 写过PHP的同学都知道 PHP的数组Array非常好用,特别灵活。,我在写PHP之前使用Java做安卓开发,在接触PHP的数组Array之后,直呼太香了!,而在学习Go基础知识的时候了解到Go的数组和... 网站建设# array# go# goframe 5年前280
聊聊Go语言中文件操作 文件操作应该是应用程序里非常常见的一种操作,无论是哪种应用场景,几乎都离不开文件的基本操作。Go语言中提供了三个不同的包去处理文件,os包提供了处理文件的API接口,遵循Unix标准,平台无关,所有操... 网站建设# go# io# os 4年前270
我认为 Go 的成功归功于这五个方面 大家好,我是煎鱼。,在国外的播客节目 Go Time #100 中,Rob Pike 和 Robert Griesemer(Go 的两位创始人)和主持人 Jerod Santo 讨论了 Go 语言的成... 网站建设# go# jerod# pike 4年前270
Go 语言 context 优秀实践 Go 语言在 v1.7 引入 context 包,关于它的使用方式,我们在之前的文章中已经介绍过,感兴趣的读者朋友们可以翻阅。,本文我们介绍 context 包的最佳实践,包括传值、超时和取消。,我们... 网站建设# context# func# go 4年前270
Go 要违背初心吗?新提案:手动管理内存 由于手动管理内存普遍会给程序员带来一定的心智负担,提高一门编程语言的入门门槛(还记得大学写 OC 时经常有同学写着写崩了...)。,对应到 Go 语言上,他是一门带垃圾回收的编程语言。也就是说不需要程... 网站建设# arena# go# 内存 3年前260
PHP转Go优选的框架:GoFrame 最近发现了一款非常好用的基于go语言的web开发框架,非常适合PHP转Go的同学使用,在很多设计思想和使用上和PHP的Laravel框架非常像。,今天就为大家简单介绍一下GoFrame的特点:,GoF... 网站建设# go# goframe# php 4年前260
Go 语言一次性定时器使用方式和实现原理 在 Go 语言标准库 time 包中的 Timer 类型,它是表示单一事件的计时器,也就是说它是一次性定时器。,在 Go 语言项目开发中,定时器使用广泛,本文我们介绍 Go 语言中怎么使用 Time... 网站建设# go# time# timer 4年前260
还能这样玩?Go 将会增强 Go1 向前兼容性 大家好,我是煎鱼。新春快乐呀!,年前我们在《醒醒吧,未来不会有 Go2 了!》文章中讨论了 Go2 的未来,明确了未来是以 Go1.x.y 为主的 Go1 时代。,为了实现这个北极星目标,Go 团队采... 网站建设# go# 兼容# 向前 5年前260
不想Go 错误处理太臃肿,可以参考这个代码设计 最近写了个程序,因为是急活(貌似没有不急的...),所以这个程序又是我东拷一段,西粘一块拼出来的。代码写完了后,感觉这代码屎一样,都快把自己看哭了。真的是在心里边写别骂,先是骂以前做这个项目的人蠢,项... 网站建设# go# 代码# 这个 5年前260
2022 年第二季度 Go 开发者调查报告 Go 博客发布了 2022 年第二季度 Go 开发者调查报告。据介绍,总共有 5752 名开发者参与了本次调查,分享了他们使用 Go 1.18 中新特性的经验和心得。,,绝大多数受访者 (86%) 已... 网站建设# go# 使用# 受访者 5年前260
Go 语言 Errgroup 库的使用方式和实现原理 在 Go 语言中,我们可以使用 errgroup 库处理 goroutine 中的错误。,errgroup 库最近更新了,新增支持限制并发数量的功能。,本文我们介绍 errgroup 库的使用方式和... 网站建设# errgroup# go# goroutine 4年前250
在 Go 中复制文件的三种方法 本文将介绍展示如何使用 Go 编程语言 来复制文件。在 Go 中复制文件的方法有很多,我只介绍三种最常见的:使用 Go 库中的 io.Copy() 函数调用、一次读取输入文件并将其写入另一个文件,以及... 网站建设# copy# go# io 4年前250
Go插件系统Plugin的分析 ,在Go语言中,有一个好像很好用,但却比较少人提及的功能,那就是Go Plugin。,目前在 Go 工程中普遍还没广泛的使用起来,覆盖率不高。在 Go issues 上吐槽挺多,甚至感觉有点像凉了半截... 网站建设# go# plugin# 为什么 4年前240
在 Go 中实现一个支持并发的 TCP 服务端 TCP 和 UDP 服务端随处可见,它们基于 TCP/IP 协议栈,通过网络为客户端提供服务。在这篇文章中,我将介绍如何使用 Go 语言 开发一个用于返回随机数、支持并发的 TCP 服务端。对... 网站建设# go# goroutine# tcp 4年前240
Go 大佬良心发现,愿意给 Map 加清除了? 大家好,我是煎鱼。,一个东西来来回回的讨论,关了又开,关了后建新的,新的被 ban 了,又发现新的论据,再打开新的。这在职场工作中很常见,在 Go 的提案讨论中,也出现了...,今天要分享的是 Go ... 网站建设# go# map# nan 5年前240
Go 编程语言中使用文本文件指南 ,作为一种编程语言,Go 具有广泛的内置功能,包括创建、读取和写入文本(.txt)文件等文件的功能。,文件是现代世界我们日常生活的重要组成部分。文本文件对于存储结构化的人类可读数据非常有用,而无需使用... 网站建设# bufio# go# io 3年前230
Go 语言怎么解决编译器错误“err is shadowed during return”? 在 Go 语言开发中,我们可能会遇到“错误在返回时被隐藏”的错误,该错误在 Go 编码时很难发现,在 GoLand 中也只是会变量名高亮提示,只有在编译 Go 项目时,Go 编译器会返回 err is... 网站建设# err# go# shadowed 3年前230
Go 语言短变量声明的“坑” 在使用 Go 语言进行项目开发时,我们经常会在定义变量时使用 Go 语言的一个语法糖 - 短变量声明,它虽然好用,但是也会有让我们不小心就会掉进的“坑”。,本文我们介绍一个 Go 语言短变量声明最容易... 网站建设# go# 作用域# 变量 4年前230
Go1.20 arena 能手动管理内存了,怎么用? 大家好,我是煎鱼。,最近 Go1.20 中的手动管理内存受到了很多人的关注。众所周知,Go 是一门带垃圾回收(GC)的编程语言,可以进行自动的内存申请、释放等内存操作。,带 GC 能简化编程时的心智成... 网站建设# arena# go# 内存 5年前220
这些常用的 Go CLI 命令,新手 Gopher 应该掌握 本文将介绍一些最基本的 Go 命令行命令。如果你刚接触 Go 语言,那你有必要记住它们,因为这些命令是 Go 开发者日常工作中所必备的。,开始 Go 项目前,我们应该确保开发机上已经安装好了 Go 编... 网站建设# go# mod# 命令 5年前220
Go 语言怎么处理三方接口返回数据? 在使用 Go 语言调用三方RESTful接口时,因为无法直接操作 json 字符串,所以我们需要先将 json 字符串转换为 map 或 struct。,本文我们介绍一下怎么处理三方接口返回数据。,我... 网站建设# go# json# 三方 5年前220
醒醒吧,未来不会有 Go2 了! 大家好,我是煎鱼。,本周末在学习的时候,看到 Go 团队大当家 Russ Cox(下称:rsc)在近期分享的《GopherCon 2022: Russ Cox - Compatibility: How... 网站建设# cox# go# russ 5年前220
Go 语言怎么优化重复的 if err != nil 样板代码? Go 语言的错误处理在社区中一直被部分 Go 开发者诟病,其中重复的 if err != nil 样板代码是最令 Go 开发者难以忍受的,严重降低代码的可读性。,针对这个社区争论非常激烈的话题,笔者介... 网站建设# err# go# nil 4年前210
Go开源库、大项目的公共包,是这么用建造者模式的 建造者模式,也有翻译成生成器模式的,大家看到后知道他们是一个东西,都是Builer Pattern翻译过来的就行。它是一种对象构建模式,是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建... 网站建设# coffee# go# 建造 4年前210
Go 探讨了13年,怎么解决再赋值的坑? 大家好,我是煎鱼。,最近在看 Go 的一些历史提案时,发现有个别很神奇的提案,已经提出来了许多年,但在如今依然没有关闭,并且不断地有人在讨论,但又解决不了。,有种 “很气又干不掉我的样子”,今天就由煎... 网站建设# err# go# 复制 4年前200
Golang Channel 三大坑,你踩过了嘛? 在使用 channel 进行 goroutine 之间的通信时,有时候场面会变得十分复杂,以至于写出难以觉察、难以定位的偶现 bug,而且上线的时候往往跑得好好的,直到某一天深夜收到服务挂了、OOM ... 网站建设# channel# go# goroutine 5年前190
这三个 Go 水平自测题,手写不出来还是先老实上班吧 现在技术文章特别卷,啥啥底层都能给你分析的头头是道,但是分析的对不对要看作者水平,很有可能一个错,抄他的那些人也跟着错,因为我以前看源码的时候就经常感觉自己在两种状态下切换:懂了 / 娘咧漏看了,这个... 网站建设# go# 以前# 八股文 4年前180
用 Go interface{} 等于什么也没说 大家好,我是煎鱼。,如果说在 Go 里要有一句与 interface{} 相关,你会想到什么?是万物皆要定义 interface,否则没法抽象?,Go 谚语中认可的是:"interface{} say... 网站建设# go# interface# 变量 4年前180
Go中这么多创建Error的方式,你真的了解它们各自的应用场景吗 在Go中,error是一种内建的数据类型,被定义为一个接口,定义如下:,由此可知,该接口只有一个返回字符串的Error函数,所有的类型只要实现了该函数,就创建了一个错误类型。,创建error的方式包括... 网站建设# error# go# new 3年前170
Go 语言为什么建议定义零值可用的结构体? 在 Go 语言中,通过声明或者通过调用 new 为变量分配存储空间,或者通过复合字面量或调用 make 创建新值时。,如果未提供显式初始化,则会为变量或值指定默认值,此类变量或值的每个元素都设置为其类... 网站建设# go# 初始化# 类型 5年前170
Go1.20 将会修改全局变量的初始化顺序。梅度二开,继续打破 Go1 兼容性承诺! 大家好,我是煎鱼。,Go1.20 已经发布了 rc1,大家都关注了一些大头的功能特性,例如:PGO、Arean 等,都没有那么的常接触到。,实质上本次新版本还修复了在全局变量初始化方面的顺序,来自《c... 网站建设# f# go# 全局变量 4年前160
Go 要加个箭头语法,这下更像 PHP 了! 大家好,我是煎鱼。,在六一儿童节前夕在摸煎鱼时,看到一个很神奇的 Go2 的技术提案,想要加一个更简单、更轻量的匿名函数语法。,今天就由煎鱼和大家一起看看。,新的 Go 提案目的是添加轻量级的匿名函数... 网站建设# go# 函数# 匿名 4年前160
Go 语言创始人:复制亿点点代码比用别人轮子好! 大家好,我是煎鱼。,平时我们经常会进行网上冲浪,学习经验、知识以及吃瓜。在代码界,还有同学调侃我们就是 c+v (复制粘贴)工程师。,我的专用快捷键:,,在 Go 语言中,有一句谚语也指出了 ”复制... 网站建设# go# little# uuid 4年前160
Go 的零值有什么用?看看这四个场景 Go 语言中有一个有些特殊的概念,叫做零值。许多转语言的同学经常会弄混淆,一开始会不适应。,代码如下:,输出结果:,这会导致大家在定义各种数据库字段时比较纠结,又会说 Go 这零值,例如:整型的零值 ... 网站建设# go# 定义# 数据库 5年前160
这个新 Go 错误处理提案,能解决问题不? 大家好,我是煎鱼。,Go 语言的一大特色就是它的错误机制,因此基本上所有的错误处理提案或讨论我都会有所查看和学习,开拓不同的思考视野和解决方法。,今天分享的是 @Cristo García[1] 所提... 网站建设# err# go# 提案 5年前150
让我们一起分析 Go 语言逃逸 熟悉 C / C++ 的读者朋友们应该都知道一个进程(应用程序)的虚拟内存空间划分为栈内存区和堆内存区。,栈内存区上对象的内存空间是自动分配和销毁的,使用者无需关心。但是,堆内存区上对象的内存空间是需... 网站建设# go# 使用者# 内存 5年前150
如何让 Go 反射变快,你学会了吗? 最近读到一篇关于 Go 反射的文章,作者通过反射给结构体填充字段值的案例,充分利用 Go 的各种内在机理,逐步探讨让代码运行得更快的姿势。,文章(原文地址:https://philpearl.gith... 网站建设# go# 反射# 填充 5年前150
如何在 Go 中构建一个基本的 Web 服务器 Go 是一种大有前途的编程语言,用于构建现代 Web 应用程序和系统软件。它一发布就席卷了科技行业,并为 Docker、Kubernetes、Terraform、Dropbox 和 Netflix 等... 系统教程# go# net# web 2年前140
Go defer 去掉闭包函数,靠谱吗? 大家好,我是煎鱼。,在 Go 语言里,defer 关键字是大家很爱用的。因为他有着 defer+recover+panic 的组合拳打法,还有种各种 defer close 等常用场景。,这是 Go ... 网站建设# defer# go# 代码 3年前140
依葫芦画瓢理解一个小型Go框架 最近在开发Go程序,同事(github.com/WiFeng/go-sky)参考go-kit框架封装了一个简易的轮子,包含了Api和Task任务,已经能满足大部分Web需求,依葫芦画瓢,自己理解了下... 网站建设# endpoints# go# service 4年前140
Go 语言怎么使用变长参数函数? Go 语言中函数的最后一个参数可以是变长参数,细心的读者朋友们可能已经发现,在 Go 语言标准库 fmt包中就有使用变长参数函数,比如 Println 和 Printf。,我们在使用 Go 语言开... 网站建设# go# 函数# 参数 4年前140
常见排序算法的Golang 实现 现在的面试真的是越来越卷了,算法已经成为了面试过程中必不可少的一个环节,你如果想进稍微好一点的公司,「算法是必不可少的一个环节」。那么如何学习算法呢?很多同学的第一反应肯定是去letcode上刷题,首... 网站建设# go# 刷题# 学习 4年前140
Go 语言类型转换的陷阱 Go 语言作为强类型语言,在使用 Golang 开发项目时,经常会遇到类型转换的场景,整型之间可以直接转换,字节切片和字符串之间也可以直接转换。,但是,如果整型和字符串之间做类型转换,则需要使用 st... 网站建设# go# strconv# 字符串 3年前100
伙计,Go项目怎么使用枚举? 哈喽,大家好,我是asong。枚举是一种很重要的数据类型,在java、C语言等主流编程语言中都支持了枚举类型,但是在Go语言中却没有枚举类型,那有什么替代方案吗?本文我们来聊一聊这个事情;,我们以j... 网站建设# go# 使用# 常量 4年前100