Go 事,如何成为一个Gopher ,并在7天找到 Go 语言相关工作,第1篇

1,564 阅读5分钟

学习前

本系列博客目标定位是7天内学会Go语言,并且找一个 Go 相关的工作,那必然存在一些前提条件,即前置技术点。

你需要:

  • 具备一门编程语言基础,Python,PHP,C# …… 都可以;
  • 熟悉Linux基本操作,至少在服务器端搭建过小项目;
  • 熟练的电脑操作,打字速度还不错。

有这些基础,才可以在 7 天内快速掌握Go 语言,否则很难办到。

Go 的背景

学习语言要先了解其背景,其中可以找到该语言产生的原因,还有该语言核心解决的问题。

Go 是开源的,并且在 2007 年开始研发,2009 年开源,2012年发布1.0版本,作为一门语言来说,非常年轻。

而且 Go 语言是 Unix 的作者,C语言的作者,而且谷歌的V8引擎都是由该人打造的,并且 Go 的推出是由谷歌公司落地的,所以背靠大山。

Go 的吉祥物是一个地鼠(学名囊地鼠,金花鼠,英文名Gopher),所以很多 Go 的开放者把自己叫做 Gopher。

Go 事,如何成为一个Gopher ,并在7天找到 Go 语言相关工作,第1篇

Go语言的官网

golang.google.cn/learn/

Go语言的gihub

github.com/golang/go

这两个站点是未来学习工作获取一手资料的重点位置。

还有一些 Go 语言学习中文官网,可以自行通过搜索引擎检索,社区非常多,学习阶段可以海量吸收。

Go的 hello world

在官网下载了最新版本,原则上学习阶段选择低版本比较好,相对纯粹,但我们本期是快速入门,所以直接上新的。

Go 事,如何成为一个Gopher ,并在7天找到 Go 语言相关工作,第1篇

安装吧一路下一步,进入安装等待页面。

Go 事,如何成为一个Gopher ,并在7天找到 Go 语言相关工作,第1篇

安装之后进入 CMD 即可查看其版本号,使用如下命令:

C:\Users\Administrator>go version
go version go1.18.4 windows/amd64

接下来直接编写 Hello World 代码,Go 语言的后缀是 .go ,可以在本地任意目录创建一个 01_demo.go 文件。 安装之后,发现在Go包在VSCode中集成了一些功能。

Go 事,如何成为一个Gopher ,并在7天找到 Go 语言相关工作,第1篇

如果提示其需要安装扩展,可以自行补充。

Go 事,如何成为一个Gopher ,并在7天找到 Go 语言相关工作,第1篇

Hello World 代码非常简单,使用下述命令即可。

package main

import "fmt"

func main() {
	fmt.Println("Hello,World")
}

运行也非常简单,使用 go run 文件名 即可。

Go 事,如何成为一个Gopher ,并在7天找到 Go 语言相关工作,第1篇

因为我们已经有其它语言的基础,所以语法层面的知识点可以直接总结。

首行代码 package main ,定义包名,Go 语法要求必须在非注释的第一行指定该文件属于哪个包。

该行代码是导入 Go 语言的 main 包,main 包装是特殊的,它定义了一个独立的可执行程序,而不是库。在 main 包中,函数 main 也是特殊的,它是程序开始执行的地方。

Go 语言的所有文件都需要指定其所在包(package),包的类型有两种,一种就是 main 包,使用 package main 导入,另一种是非 main 包,使用 package 包名 导入,在 Go 中使用 package 管理源文件,package 必须在一个文件夹内,而且该文件夹下只能有一个 package。

代码行 import "fmt" 表示需要使用 fmt 包,即调用其变量、函数等内容,该包用于格式化 I/O,即输入和输出函数。

代码行 func main() 是程序的开始函数,每一个可执行程序必须包含 main

代码行 fmt.Println("Hello,World") ,输出函数,其中可以看到 fmt 包被调用,按照其它语言的经验 Println 表示换行, Print 表示不换行。

这里还实验过一个操作,当大括号 { 或者 } 在单独一行时,会出现错误。

func main() 
{
	fmt.Println("Hello,World")
}

Go 事,如何成为一个Gopher ,并在7天找到 Go 语言相关工作,第1篇

除了上文提及的 go run 文件名 运行 Go 程序外,还可以使用 go build 文件名 将 Go 代码编译为 exe 程序。

PS F:\go_learn> go build .\01_demo.go
PS F:\go_learn> ls
目录: F:\go_learn
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        2022/7/20     11:41        1892352 01_demo.exe
-a----        2022/7/20     10:42             79 01_demo.go

Go 语法细节

在 Go 语言中,一行就是一个语句,末尾不需要使用 ; 结尾,其实实战中也可以在一行写多个语句,然后把 ; 使用上,但是基本无人这样操作。

func main() {
	fmt.Println("Hello");fmt.Println("World")
}

在VSCode中,就自动被格式化了。

注释 注释比较简单,单行使用 // ,多行使用 /**/

标识符 在 Go 中,用来命名变量,函数,类型的内容,就是标识符,它需要由字母,数字,下划线组成,而且要求第一个字符必须是字母或下划线,不能是数字,这一点其它语言也是这么要求的,无学习难度。

关键字 在 Go 中,有25个关键字或保留字,这些一般不用特别记忆,而是要求自己的标识符命名的时候,尽量词能达意。

变量的声明 Go 语言是静态类型,变量声明需要有明确类型,语法格式如下所示:

var name type

其中 var 是关键字, name 是变量名, type 是变量的类型。

Go 语言的基本类型有:

  • string
  • int、int8、int16、int32、int64
  • uint、uint8、uint16、uint32、uint64、uintptr
  • byte(uint8 的别名)
  • rune (int32 的别名)
  • float32、float64
  • complex64、complex128
  • bool

变量被声明之后,系统自动赋零值,例如 int 类型为 0,float 类型为 0.0 ……

命名规范遵循小驼峰命名法,例如 myName,xiaomingAge。

字符串连接和字符串格式化 语法与其它语言一致, + 表示连接,格式化字符串的时候, %s%d 分别表示字符串和数字,格式化函数如下所示:

package main

import "fmt"

func main() {
	var str_format = "数字:%d,字符串:%s"
	var new_str = fmt.Sprintf(str_format, 100, "橡皮擦")
	fmt.Println(new_str)
}

学习后

本篇博客只是 Go 的起手式,下一篇即将到来~

本文正在参加技术专题18期-聊聊Go语言框架