Go语言入门教程_Golang入门教程 (图文教程)
一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 - 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/
截止目前, 星球 内专栏累计输出 72w+ 字,讲解图 3103+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2400+ 小伙伴加入学习 ,欢迎点击围观
一、什么是 Go 语言?
Go(又称Golang)是 Goolge 开发的一种静态型、编译型、并发型,并具有垃圾回收功能的语言。
罗伯特·格瑞史莫,罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计了Go语言,设计初衷是为了提高在多核、网络机器(networked machines)、大型代码库(codebases)的情况下的开发效率。当时在Google,设计师们想要去除主流编程语言中目前存在的缺点,只吸取它们的优点用于 Go 语言之中。
Go于2009年11月正式开源,同时支持 Linux、MacOS、Windows 等操作系统。
2016年,Go语言被 TIOBE 评为 "年度最佳语言"。
二、Go 语言特性
- Go 语言上手非常容易,它的风格类似于 C 语言,但是其语法在 C 语言的基础上做了大幅度简化,如去掉了冗余的表达式括号,循环遍历也只有
for
一种写法等; - 工程结构简单;
- 代码可读性和易用性高;
- 编译速度快,由于其语法简单、工程结构设计严谨、没有头文件、无包交叉依赖等特点,很大程度上节约了编译所需耗时。
- 高性能,原生支持并发。Go 语言的并发基于
goroutine
, 它类似于线程,但并非线程。Go 语言运行时,会参与调度goroutine
, 并将goroutine
合理的分配到每个 CPU 中,从而最大程度的保证 CPU 的使用率。 - 丰富强大的标准库,其中包括网络、图形、系统、加密、编码等各个方面。
三、Go 语言有多火 ?
Go 语言号称是互联网时代的 C 语言,那么它到底有多火呢?
-
- 绝大多数的云原生项目都是用 Go 语言编写的,比如:
- Docker: 容器化技术;
- Kubernetes: 构建于 Docker 之上的容器调度服务;
- etcd: 一款分布式、可靠的 KV 存储系统;
- Istio: 一个与 Kubernetes 紧密结合的适用于云原生场景的 Service Mesh 形态的用于服务治理的开放平台;
- Prometheus: 一个开源的服务监控系统和时间序列数据库;
- ...
-
- Go 语言将会成为云计算时代的基础设施编程语言,比如区块链明星项目 Hyperledger、NewSQL , 明星项目 TiDB 也是基于 Go 语言的;
-
- Go 语言已经成为下一个企业级编程语言,包括字节跳动、滴滴、腾讯、阿里巴巴在内的一线互联网公司都在使用。
四、Go 语言教程目录
小伙伴们按照下面教程目录的顺序学习 Go 语言即可:
Go 语言入门
- 1.1 Go语言入门教程
搭建 Go 语言环境
- 2.1 Go 语言下载
- 2.2 Windows 安装 Go 语言环境
- 2.3 Linux 安装 Go 语言环境
- 2.4 Mac 安装 Go 语言环境
- 2.5 编写第一个 Go 程序: Hello World !
- 2.6 搭建 Jetbrains GoLang 开发环境
Go 语言基本语法
-
3.1 Go 语言变量
-
3.2 Go 语言数据类型
Go 语言容器
- 4.1 Go 语言数组
- 4.2 Go 语言切片(Slice)
- 4.3 Go 语言字典 (Map)
- 4.4 Go 语言 list (列表)
Go 语言流程控制
- 5.1 Go 语言 if else (条件判断)
- 5.2 Go 语言 for(循环)
- 5.3 Go 语言 for range (键值循环)
- 5.4 Go 语言 switch 语句(分支判断)
持续更新中 ...