![](https://img-blog.csdnimg.cn/20210221145347442.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Go语言从入门到精通
文章平均质量分 84
帮助Go语言小白快速学习Go语言基础知识,从不了解到了解,到会写Go语言程序,到入门,直到精通,作为Go语言系列全教程。
xcbeyond
CSDN西安城市开发者社区主理人、云原生技术社区主理人。(欢迎共办线下活动,WX联系:xcbeyond001)
一个热爱编程、热爱技术的人,乐于技术输出、分享。
展开
-
深入了解 Golang 多架构编译:交叉编译最佳实践
通过这篇文章,读者可以全面了解 Golang 的多架构编译功能,掌握如何使用这一功能来实现跨平台部署。同时,通过最佳实践示例,读者可以更加直观地理解 Golang 多架构编译的实际应用场景,为日后的开发工作提供参考和指导。原创 2024-05-26 22:51:22 · 1710 阅读 · 0 评论 -
Golang项目中如何轻松实现私有仓库pkg包的引入
在企业内部创建一个公共的Golang模块工程可以帮助提高代码复用性和开发效率。本文将从如何创建一个公共的Golang工程开始,指导你一步步创建它、并引入到你的工程中。原创 2023-08-11 15:50:37 · 2235 阅读 · 4 评论 -
Web 框架 Gin | Gin快速入门
大家好!我是 xcbeyond, xcbeyond 就是我,大家也可以叫我超哥!本文首发于我的博客:Gin 介绍1、Gin 概述Gin 是一个基于 Go 语言编写的 Web 框架,与 martini 框架类似,但拥有更好的性能,借助高性能的 httprouter,速度提升了近 40 倍。如果你追求高性能和开发效率,你会爱上 Gin 框架。1.1 功能特性快速基于Radox树(一种更节省空间的 Trie 树结构)的路由,内存占用更小。没有反射。可预测的 API 性能。中间件支.原创 2021-08-12 22:35:20 · 1364 阅读 · 0 评论 -
Cobra 快速入门 - 专为命令行程序而生
最近一直在看Istio(一个Service Mesh框架)相关的东西,当看到其源码时发现了一个新东西Cobra,一查却发现这是个好东西,用的地方可不少,比如:Docker、Kubernetes等都有它的身影存在。为了更好的了解这些开源框架(如,Istio、Kubernetes等),势必需要对Cobra做一个详细的了解,后续可能用到它的地方会很多。今天就Cobra做一个整体的介绍,让我们对它能有所认识,或许今后你的项目中也会用到它。1、Cobra 介绍1.1 Cobra 概述C...原创 2021-08-05 22:45:18 · 1551 阅读 · 5 评论 -
4.2 Go语言从入门到精通:延迟函数 defer
Go 语言中存在一个特殊的语句,defer 语句会将其后面跟随的语句进行延迟处理,在 defer 归属的函数即将返回时,将延迟处理的语句按 defer 的逆序进行执行,也就是说,先被 defer 的语句最后被执行,最后被 defer 的语句,最先被执行。关键字 defer 的用法类似于面向对象编程语言 Java 中的 finally 语句块,它一般用于释放某些已分配的资源,典型的例子就是对一个互斥解锁,或者关闭一个文件。1、多个延迟执行语句当有多个 defer 语句时,它们会以逆序执行(即后进先出)原创 2021-05-04 17:59:24 · 287 阅读 · 4 评论 -
4.1 Go语言从入门到精通:函数
常量和变量都是数据的一种载体,数据通过不同的运算符参与运算时,对计算的流程进行一定程度的控制便是流程控制,并且低于较多的数据通过内置容器进行存储,那么之后要干嘛呢?就是通过以上的所有概念进行整合,将其抽象到一个模块中去完成某一功能,这便是本篇的主题——函数。函数,并不是一个新概念,在不同语言中都能听到函数这个名词,那么在Go语言中函数又该如何使用呢?它到底与其他语言又有哪些差异呢?1、函数定义Go 语言中,函数定义是以关键字 func 开始,其标准格式如下:func 函数名(参数列表) (返回参数列原创 2021-04-27 17:43:50 · 308 阅读 · 8 评论 -
3.5 Go语言从入门到精通:标准输入输出fmt包
在程序的任何阶段,我们可能都会需要输入/输出一些数据,以及通过输入/输出记录各种数据以进行程序调试,这种基本的输入/输出将有助于我们编写更好的代码。然而 fmt 包就很好的提供了标准输入输出,便于进行打印等,本文将针对 fmt 包进行讨论。1、fmt 包fmt 包实现了格式化的输入输出,这与 C 语言中的 printf 和 scanf 类似,它属于Go 的内置包,在安装 Go 的时候会自动安装到系统中,位于 $GOROOT\src\pkg\fmt目录中,其中包括以下源代码:doc.goerrors.原创 2021-04-12 13:21:02 · 624 阅读 · 3 评论 -
3.4 Go语言从入门到精通:包管理工具之Go module
Go modules 是 Go 语言目前最佳的依赖解决方案,发布于 Go 1.11版本,Go1.14版本 上已经明确建议生产上使用。而 Go modules 之前,Go 项目使用 GOPATH 、Govendor包管理方式,但却都存在一定的问题,本文就重点讨论关于另外一个包管理工具 Go module 的由来及使用。1、Go module 概述1.1 Go module介绍使用 GOPATH 包管理方式,最严重的问题就是当使用go get 命令时,没有版本选择机制,拉取下来的依赖代码都会默认当前最新版原创 2021-04-06 23:49:44 · 626 阅读 · 0 评论 -
3.3 Go语言从入门到精通:包管理工具之Govendor
Govendor 是 Go 的另一个依赖包管理工具,它的出现可以避免不同用户在 clone 同一个工程后从外部获取不同依赖库版本的问题,很好的弥补了 GOPATH 包管理的缺陷。govendor 会将工程需要的依赖包添加到工程的 vendor 目录下,并且该目录中 vendor.json 文件会保存添加的依赖包的路径等信息。(出于知识体系的完整性以及对各类包管理工具的全面了解,本文重点只是介绍Govendor 的存在,并不推荐使用它,仅作了解即可。)1、Govendor 概述Go 工程的依赖包经常使用原创 2021-04-06 23:47:31 · 300 阅读 · 0 评论 -
3.2 Go语言从入门到精通:包管理工具之GOPATH
当我们真正用 Go 去做项目,或者阅读 Go 项目(如,Go 实现的开源项目)时,不可避免的会遇到包依赖问题,一些包管理方式总是很难区分、选择。Go的包管理与Java的Maven依赖管理不太一样,起初Go的包管理方式经常会被人吐槽,但随之Go版本的升级也出现了不同的包管理方式,以满足不同的需求。今天,我们就 GOPATH 开始来了解 Go 最基本的包管理方式,让你彻底认清它。(虽然很简单,但作为系列文章还是有必然单独说一下的)1、GOPATHGOPATH, 被称之为“工作目录”,是 Go 语言中使用的原创 2021-04-06 23:46:45 · 355 阅读 · 0 评论 -
3.1 Go语言从入门到精通:包
Go 语言像 Java 语言一样都拥有包的概念,通过使用包来组织源代码。包(package)是多个 Go 源码的集合,是一种高级的代码复用方案。Go语言中为我们提供了很多内置包,如 fmt、os、io 等。任何 Go 源代码文件都必属于某个包,同时源码文件的第一行有效代码必须是package pacakgeName 语句,通过该语句声明自己所在的包。1、包的概述Go 语言的包借助了目录树的组织形式,一般包的名称就是其源文件所在目录的名称,虽然 Go 语言没有强制要求包名必须和其所在的目录名同名,但还是原创 2021-03-25 19:55:50 · 254 阅读 · 2 评论 -
2.4 Go语言从入门到精通:条件和循环
在程序中必然少不了条件语句和循环语句,Go 语言在条件、循环语句方面与其他语言存在一定的差异,本文将针对Go 语言中条件语句、循环语句的使用,这将会奠定后续复杂程序的基础。1、条件语句条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。下图展示了程序语言中条件语句的结构:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0oQk98en-1616398131984)(./条件语句原创 2021-03-22 15:29:16 · 332 阅读 · 0 评论 -
2.3 Go语言从入门到精通:数据类型
文章目录1、基本数据类型1.1 布尔型1.2 数值型1.2.1 整型1.2.2 浮点型1.2.3 复数1.3 字符串型2、派生数据类型2.1 指针2.2 数组2.3 结构体2.4 通道(channel)2.5 切片(slice)2.6 函数2.7 接口(interface)2.8 Map3、其他3.1 数据类型转换3.2 类型别名4、小结Go 语言是一种静态类型的编程语言,在 Go 编程语言中,数据类型用于声明函数和变量。数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才原创 2021-03-20 22:12:06 · 562 阅读 · 2 评论 -
2.2 Go语言从入门到精通:Go语言变量
文章目录1、变量的声明1.1 标准声明格式1.2 根据值自行判定变量类型1.3 短变量声明1.4 批量声明2、变量的初始化3、变量的多重赋值4、匿名变量5、变量的作用域5.1 局部变量5.2 全局变量5.3 形式参数变量来源于数学,是计算机语言中能储存计算结果或能表示值的抽象概念。Go语言是静态类型语言,因此变量(variable)是有明确类型的,编译器也会检查变量类型的正确性。变量可以通过变量名访问。Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。1、变量的声明声明变量的一般原创 2021-02-28 19:20:11 · 362 阅读 · 0 评论 -
2.1 Go语言从入门到精通:Go语言基础语法
文章目录1、命名规则2、关键字3、注释4、行分隔符5、字符串输出6、字符串拼接与其他编程语言一样,Go语言项目(大程序)都是从基本组件和基本语法编写而成。上一章节我们已经了解了 Go 语言的样子,本章节我们将学习Go语言的基础语法,也将是接下来所有Go程序中不可或缺的部分。1、命名规则Go中类型、变量、常量、语句标签、包和函数的命名都遵循一个简单的规则:**命名的开头是一个字母或下划线而不能是数字,后面可以跟任意数量的字符、数字和下划线,并区分大小写。**如xcbeyond和xcBeyond是不同的标原创 2021-02-28 19:18:54 · 309 阅读 · 0 评论 -
1.4 Go语言从入门到精通:Go代理goproxy
在逐步编写Go程序时,会涉及使用到第三方提供的Go依赖包,如:github.com/spf13/cobra,在国内使用 go get 命令安装时经常会出现 timeout 等问题,实在让人头疼。大家都知道,在国内网络环境下,想要解决这种问题,只有掌握科学上网才能彻底解决。但是科学上网却是需要花费额外成本的,那该怎么办呢?本文将会介绍一种Go代理 goproxy 的方式来解决上述问题,让你既不花钱,又能快速下载安装。1、goproxy.cn 介绍Go的1.11版本以后可以设置环境变量 GOPROXY,来原创 2021-03-24 22:45:57 · 1349 阅读 · 0 评论 -
1.3 Go语言从入门到精通:编写第一个Go程序
文章目录1、Go语言结构2、执行流程3、开发注意事项在开始Go语言的基本语法、函数和高级特性等之前,让我们先编写第一个Go程序”Hello World!“开始,来了解Go语言最简单程序的结构吧,看看Go程序应该包括哪些部分,每部分都位于什么位置,Go语言究竟是如何执行的。我们依然从永恒的“hello,world”程序开始,hello.go源代码如下:package mainimport "fmt"func main() { // "Hello World!" Go语言程序 fm原创 2021-02-25 22:23:47 · 422 阅读 · 0 评论 -
1.2 Go语言从入门到精通:开发环境搭建
文章目录1、Go语言环境安装1.1 开发包获取1.2 开发包安装2、IDE安装2.1 IDE工具2.2 安装VSCode2.3 Go语言程序快速运行1、Go语言环境安装1.1 开发包获取Go 语言支持以下系统:WindowsLinuxMac:也称为 DarwinFreeBSD开发包下载地址为:https://golang.org/dl如果打不开可以使用这个地址:https://golang.google.cn/dl根据你的系统,选择下载对应的开发包。以Windows系统为例,下载原创 2021-02-21 23:00:11 · 475 阅读 · 0 评论 -
1.1 Go语言从入门到精通:Go语言介绍
1、Go介绍Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.“Go是一种开源的程序设计语言,它意在使得人们能够方便地构建简单、可靠、高效的软件。”(来自Go官网golang.org的定义)Go语言,又称为Golang,在2007年9月形成构思,并于2009年11月发布,其发明人是Google的Robert Griesemer,原创 2021-02-21 20:07:08 · 764 阅读 · 0 评论 -
0 Go语言从入门到精通
“Go will be the server language of the future.” — Tobias Lütke, Shopify在过去几年,崛起了一门新的语言:Go 或者 GoLang。没有什么比一门新的编程语言更令开发者兴奋了,不是么?目前一些开源社区,纷纷采用Go语言开发了许多平台、框架等,如:Docker、Kubernetes等,甚至逐步从其它语言(如:C、Java等)转换到了Go,相信这一点你已经体会到了。当您在看一些开源代码时,全是Go语言编写的,你该咋办呢?此外,伴随着.原创 2021-02-21 14:56:33 · 427 阅读 · 0 评论