一、go入门

go入门

  • Go历史
    • [1.1 诞生时间](#1.1 诞生时间)
    • [1.2 里程碑](#1.2 里程碑)
    • [1.3 团队核心人员](#1.3 团队核心人员)
  • [2. 为什么使用Go](#2. 为什么使用Go)
  • [3. 安装Go](#3. 安装Go)
  • [5. 入门案例](#5. 入门案例)
  • [6. 开发工具](#6. 开发工具)

Go历史

1.1 诞生时间

Go 语言起源 2007 年,并于 2009 年正式对外发布。它从 2009 年 9 月 21 日开始作为谷歌公司 20% 兼职项目,即相关员工利用 20% 的空余时间来参与 Go 语言的研发工作。

  • 2007 年 9 月 20 日的下午,在谷歌山景城总部的一间办公室里,谷歌的大佬级程序员 Rob Pike在等待一个 C++ 项目构建的过程中和谷歌的另外两个大佬级程序员 Robert Griesemer和 Ken Thompson进行了一次有关设计一门新编程语言的讨论。
    • 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。
    • 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。
    • 企业运行维护很多c/c++的项目,C/C++程序运行速度虽然很快(因为采用静态编译),但是编译速度却很慢,同时还存在内存泄露的一系列困扰需要解决。

1.2 里程碑

  • 2007年,谷歌工程师Ken Thompson、Rob Pike、Robert Griesemer开始设计一门全新的语言,这是Go语言的最初原型。
  • 2009.11.10 ,Google将Go语言以开放源代码的形式向全球发布。
  • 2015年8月19日 ,Go1.5版本发布,本次更新中移除了"最后残余的C代码",请内存管理方面权威专家Rick Hudson对GC进行重新设计(重要的修正)
  • 2017年2月16日 , Go1.8版本发布
  • 2017年8月24日 , Go1.9版本发布
  • 2018年2月16日 , Go1.10版本发布
  • 2018年8月24日 , Go1.11版本发布
  • 2019年2月25日 , Go1.12版本发布
  • 2019年9月03日 , Go1.13版本发布
  • 2020年2月25日 , Go1.14版本发布
  • 2020年8月11日 , Go1.15版本发布
  • 2021年2月16日 , Go1.16版本发布
  • 2021年8月16日 , Go1.17版本发布
  • 2022年3月15日, Go1.18版本发布
  • 2022年8月02日, Go1.19版本发布
  • 2023年2月01日, Go1.20版本发布
  • 2023年08月08日,Go1.21版本发布
  • 2024年02月06日,Go1.22版本发布

本教程使用当前最新版本1.22进行讲解

1.3 团队核心人员

Ken Thompson(肯·汤普逊):1983年图灵奖、1998年美国国家技术奖得主,他与Dennis Ritchie是Unix系统的原创者。Thompson也发明了C语言、B语言,同时也是C语言的主要发明人。 Rob Pike(罗布·派克): 加拿大人,曾是贝尔实验室的Unix团队和Plan 9操作计划的成员。他与Thompson共事多年,并共创出广泛使用的UTF-8字符编码。(ps:Go语言的图标-gopher 囊地鼠,是Rob Pike老婆制作的) Robert Griesemer(罗伯特·格里泽默):曾协助制作Java的HotSpot编译器,和Chrom浏览器的JavaScript引擎V8.

2. 为什么使用Go

  1. 简单好记的关键词和语法。轻松上手,简单易学。
  2. 更高的效率。比Java,C++等拥有更高的编译速度,同时运行效率媲美C,同时开发效率非常高。
  3. 生态强大,网络上库很丰富,很多功能使用Go开发非常简单。
  4. 语法检查严格,高安全性。
  5. 严格的依赖管理,go mod命令。
  6. Go拥有强大的编译检查、严格的编码规范和完整的软件生命周期工具,具有很强的稳定性,稳定压倒一切。
  7. 跨平台交叉编译,windows就可以编译出mac,linux上可执行的程序。
  8. 异步编程复杂度低,易维护,GO 语言中 Channel 设计,异步程序写起来非常自然。
  9. 语言层面支持并发,go关键字(协程)使得go的并发效率极高。
  10. 严格的语法规范,所有程序员写出来的代码都是一样的,对大团队来说,非常友好。
  11. Go 的并发、性能、安全性、易于部署等特性,使它很容易成为"云原生语言"。容器和云的使用上非常广

Go语言设计之初,确定了三大原则:简洁性可读性功能性

3. 安装Go

资料中有提供windows的zip包

下载地址:https://go.dev/dl/

下载后,将压缩包解压

接下来需要配置几个环境变量:

  1. GOROOT:go语言所在的目录,用于全局执行go相关的命令

    path中也需要配置,加上值为%GOROOT%\bin的一项。

  2. GOPATH:工作目录,工程代码存放的位置,此目录下,一个文件夹就是一个工程

    path中也需要配置,加上值为%GOPATH%\bin的一项。

  3. GOPROXY:代理,由于go需要翻墙使用,需要配置代理,有好心人做了代理

go env 可以检查环境变量的配置是否正确

配置完环境变量,我们就可以开始写代码了

5. 入门案例

新建一个文件夹,hello。进入hello目录,运行cmd命令

go 复制代码
# 运行下面的命令
go mod init hello

会生成一个go.mod文件,用于管理依赖的。

接下来,写程序

新建man.go

在其中输入以下内容:

go 复制代码
// package 定义包名 main 包名
package main

// import 引用库 fmt 库名
import "fmt"

// func 定义函数 main 函数名
func main() {
	// fmt 包名 . 调用 Print 函数,并且输出定义的字符串
	fmt.Print("Hello Golang")
}

运行以下命令:

go 复制代码
go run main.go

OK,现在我们入门了~~

6. 开发工具

工欲善其事,必先利其器,这里我们选用GoLand做为我们的开发IDE。(如果已经安装了IDEA,安装Go插件后也可以编Go代码)

这里我使用的是,2022.3.4版本

直接运行即可

注意在设置中,go相关的配置

因为我比较熟悉Goland,但Goland不是唯一选择,我们也可以选择VSCode

相关推荐
褚翾澜4 分钟前
Haskell语言的NoSQL
开发语言·后端·golang
草海桐1 小时前
golang 的github.com/dgrijalva/jwt-go包
golang·jwt·jwt-go
霍徵琅2 小时前
Groovy语言的物联网
开发语言·后端·golang
申雪菱3 小时前
Scheme语言的数据挖掘
开发语言·后端·golang
欧宸雅3 小时前
HTML语言的空值合并
开发语言·后端·golang
方瑾瑜3 小时前
Visual Basic语言的物联网
开发语言·后端·golang
慕离桑5 小时前
SQL语言的物联网
开发语言·后端·golang
欧宸雅5 小时前
Swift语言的游戏引擎
开发语言·后端·golang
霍珵蕴6 小时前
Kotlin语言的软件工程
开发语言·后端·golang
褚翾澜6 小时前
Bash语言的社区交流
开发语言·后端·golang