GO语言开篇

1、GO语言历史背景

Go语言起源于Google,经过Google开发团队多年的设计和开发,于2009年正式对外发布。Go语言的设计理念包括简洁高效、高并发支持和安全稳定。它旨在简化编程任务,提高开发效率。Go语言内置goroutine和channel实现高效的并发编程,同时提供垃圾回收机制确保内存安全。Go语言迅速吸引了全球开发者的关注,成为了著名编程语言排行榜TIOBE的年度最佳编程语言。

详细经过可参考以下博客:

Go 语言的前生今世与介绍 - 贾维斯Echo - 博客园

以下是Go语言的吉祥物,类似于linux的企鹅。

值得一提的是,Go语言的开发者之一是当年开发C语言的大佬。

2、GO语言运用场景

博主认为如果您是和博主一样将Go语言作为娱乐知识的您不必了解Go语言的运用场景,只需要去学习Go语言中的一些思想,如果您是希望学习Go语言来就业,还是要明确好目标的。

2.1 云计算与微服务

  • 特点:原生支持高并发(goroutine + channel)、轻量级、适合分布式系统。

  • 典型应用

    • 微服务架构:如Uber、腾讯、字节跳动等用Go构建微服务。

    • 云原生工具:Docker(容器化)、Kubernetes(容器编排)、Prometheus(监控)等核心项目均用Go开发。

    • 服务网格:Istio、Linkerd的部分组件。


2.2 网络编程与API开发

  • 特点:标准库强大(net/http)、高性能、低延迟。

  • 典型应用

    • Web后端:高频API服务(如支付、社交平台),框架如Gin、Echo。

    • 网关/代理:Traefik(反向代理)、Envoy的Go扩展。

    • RPC服务:gRPC(Google开源的高性能RPC框架)的Go实现。


2.3 分布式系统与中间件

  • 特点:跨平台、低资源消耗、易部署。

  • 典型应用

    • 数据库与存储:Etcd(键值存储)、CockroachDB(分布式SQL)、InfluxDB(时序数据库)。

    • 消息队列:NSQ、Sarama(Kafka客户端库)。


2.4 命令行工具(CLI)

  • 特点:编译为单二进制文件、无依赖、启动快。

  • 典型工具

    • DevOps工具:Terraform(基础设施即代码)、Github CLI。

    • 开发工具:k6(性能测试)、Cobra(CLI框架)。


2.5 区块链与加密货币

  • 特点:高性能、安全性强。

  • 典型项目

    • 公链:Hyperledger Fabric(企业级区块链框架)。

    • 节点实现:以太坊的Go实现(Geth)。


2.6 实时系统与流处理

  • 特点:goroutine适合处理实时数据流。

  • 典型应用

    • 聊天服务器(如Slack的部分后端)。

    • 实时数据分析管道(如日志处理)。


2.7 嵌入式与边缘计算

  • 特点:内存占用小、跨平台(如Raspberry Pi)。

  • 典型场景

    • IoT设备的数据采集与转发。

    • 边缘网关(如华为的KubeEdge边缘计算框架)。


2.8 网络安全工具

  • 特点:静态编译、难以逆向。

  • 典型工具

    • 渗透测试工具:GoPhish(钓鱼测试)、Nuclei(漏洞扫描)。

    • 代理工具:Shadowsocks的Go实现。


不适合的场景

  • GUI开发:缺乏成熟的桌面UI框架。

  • 低延迟实时系统:如高频交易(GC可能导致延迟)。

  • 复杂算法/科学计算:生态不如Python/R丰富。


为什么选择Go?

  • 开发效率:语法简洁,编译速度快。

  • 性能平衡:接近C++/Java,但开发更高效。

  • 并发模型:goroutine比线程更轻量(KB级栈,动态扩展)。

Go尤其适合需要高并发、易维护、快速迭代的云时代应用,是云计算和微服务领域的首选语言之一。

可参考以下网址:

Go适合做什么?为何这么多人偏爱Go语言?-CSDN博客

Go应用场景与适应项目 - 知乎

3、GO语言下载,环境安装

3.1 编译环境下载

进入以下网站进行文件下载:

Download and install - The Go Programming Language

以下根据自己的操作系统和所需要的版本选择下载,博主下载的是很多年前的版本,因为博主是跟着网上的尚硅谷网课学习的,如果您也是跟着网课学习的,希望您也下载过去的版本,这样子在学习的时候可以避开很多的坑,反正工作需要的话就和同事的环境保持一致即可。

下载完成之后直接将压缩包解压,无需setup。

进入到解压之后的文件夹中,打开bin文件,其中的go.exe文件就可以进行go语言编译。但是此时的编译功能只能在当前目录下使用,所以我们需要配置系统环境变量。

验证

此时打开cmd命令行,到bin目录下运行go version命令,可以查看到当前安装的go语言编译器版本。

注意:此时在其他的文件夹下使用go命令是无法识别的。所以还要进行之后的操作。

3.2 系统环境变量配置

首先在桌面右键之后点击个性化,或者是其他方式打开电脑设置界面,之后直接搜索环境,打开"编辑系统环境变量"

先点击1"环境变量设置",之后的操作都在2"系统变量"中新建或者是编辑。

1、GOROOT

该系统环境变量名中存放的变量值为解压缩的go语言编译器文件夹。

2、path

系统默认该变量名下有很多的路径,我们需要新建一个路径,新建的路径中写bin目录所在路径,网上大部分的教程这里使用相对路径,如果您的环境下出现错误,就使用绝对路径吧。

3、GOPATH

在电脑中新建一个文件夹用于存放将来的Go语言工程,然后将该文件夹的路径放在中国变量名下。

验证

这里一定要记得先关闭cmd,然后再次重新打开cmd。

然后在任意的目录下使用目录go version,您可以看到可正常显示go语言的版本,那么此时你的环境已经安装完成了。

4、GO语言编译方法

博主图方便直接在vscode中打开terminal进行编译。

4.1 编译

go run -file

实例:

go run hello.go

该命令是将编译和运行一起进行了,所以花费的时间会稍微长一点。

4.2 先编译再运行

先编译:go build -file

实例:go build hello.go

运行:./-file

实例:./hello

指定生成运行文件的名称,必须以.exe结尾,不然的话不能运行。

go build -o -Target file -file

实例:go build -o hello1.exe hello.go

5、GO语言特性及注意事项

Go语言是一种动态性语言,弱语言,类似于python。其将include更换为import,一个文件作为一个包(package),和python的模块是一个概念。

1、Go语言文件必须以.go结尾。否则编译报错。

2、Go语言的执行入口函数是main。

3、Go语言区分大小写。

4、Go语言有不用加分号,编译器会自动加。当然加了分号也是没事的,就是比较累赘。

5、Go语言一行是一个语句,一行不能写两个语句。

6. Go语言要求import的内容、定义的变量必须被引用,否则会报错。(该功能是为了让开发者强制删除一些没有被使用的内容,从而提高代码的性能)

未使用包:

未使用变量:

内容概要:本文详细介绍了CCF-GESP认证的学习资源与知识点指南,分为官方资源与平台、知识点学习与解析、备考策略与工具、实战项目与进阶资源以及学习工具推荐五个部分。官方资源包括CCF数字图书馆提供的免费真题库、一站式学习平台和GESP官网的最新真题下载及考试环境说明。知识点学习部分涵盖Python、C++和图形化编程(Scratch)的核心内容与实战案例。备考策略方面,提出了基础、强化和冲刺三个阶段的分阶段计划,并强调了在线题库模拟测试与社区交流的重要性。实战项目与进阶资源则为不同编程语言提供了具体的应用场景,如Python的智能客服机器人和C++的并行编程与嵌入式开发。最后,推荐了多种学习工具,如代码编辑器VS Code、模拟考试平台和社区支持渠道。 适合人群:准备参加CCF-GESP认证考试的考生,特别是对Python、C++或Scratch编程语言有兴趣的学习者。 使用场景及目标:①帮助考生系统化地学习官方资源,熟悉考试形式和内容;②通过分阶段的备考策略,提高应试能力和编程技能;③利用实战项目和进阶资源,增强实际编程经验和解决复杂问题的能力。 阅读建议:建议考生按照文章中的分阶段备考策略逐步推进学习进度,充分利用官方提供的资源进行练习和模拟测试,并积极参与社区交流以获取更多备考经验和疑难解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值