Go学习笔记(1)-Golang 的概述

Go学习笔记(1)

Golang 的概述

Golang 的语言的特点

简介: Go 语言保证了既能到达静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容 Go 语言:Go = C + Python , 说明 Go 语言既有 C 静态语言程序的运行速度,又能达到 Python 动态语言的快速开发。

  1. 从 C 语言中继承了很多理念,包括表达式语法,控制结构,基础数据类型,调用参数传值,指针等 等,也保留了和 C 语言一样的编译执行方式及弱化的指针
//举一个案例(体验):
//go 语言的指针的使用特点(体验)
func testPtr(num *int) {
*num = 20
}
  1. 引入包的概念,用于组织程序结构,Go 语言的一个文件都要归属于一个包,而不能单独存在。

  1. 垃圾回收机制,内存自动回收,不需开发人员管理

  2. 天然并发 (重要特点)

​ **(1) 从语言层面支持并发,实现简单 ** **(2) goroutine,轻量级线程,可实现大并发处理,高效利用多核。 ** (3) 基于 CPS 并发模型(Communicating Sequential Processes )实现

  1. 吸收了管道通信机制,形成 Go 语言特有的管道 channel 通过管道 channel , 可以实现不同的 goroute 之间的相互通信。
  1. 函数可以返回多个值。举例:
//写一个函数,实现同时返回 和,差
//go 函数支持返回多个值
func getSumAndSub(n1 int, n2 int) (int, int ) {
sum := n1 + n2 //go 语句后面不要带分号.
sub := n1 - n2
return sum , sub
}
  1. 新的创新:比如切片 slice、延时执行 defer

Golang 的开发工具的介绍

工具介绍

VSCode 的安装和使用

  1. 先到下载地址去选择适合自己系统的 VSCode 安装软件

https://code.visualstudio.com/download

  1. 演示如何在 windows 下安装 vscode 并使用

步骤 1: 把 vscode 安装文件准备好

步骤 2:双击安装文件,就可以一步一步安装,我个人的习惯是安装到 d:/programs 目录.

步骤 3: 简单的使用一下 vscode

在 d 盘创建了一个文件夹 gocode.

Windows 下搭建 Go 开发环境-安装和配置 SDK

介绍SDK

  1. SDK 的全称(Software Development Kit 软件开发工具包)
  2. SDK 是提供给开发人员使用的,其中包含了对应开发语言的工具包

下载 SDK 工具包

  1. Go 语言的官网为:golang.org , 因为各种原因,可能无法访问。
  2. SDK 下载地址:Golang 中国 https://www.golangtc.com/download
  3. 如何选择对应的 sdk 版本

windows 下安装 sdk

  1. Windows 下 SDK 的各个版本说明:

Windows 下:根据自己系统是 32 位还是 64 位进行下载:

32 位系统:go1.9.2.windows-386.zip 64 位系统:go1.9.2.windows-amd64.zip

  1. 请注意:安装路径不要有中文或者特殊符号如空格等
  2. SDK 安装目录建议:windows 一般我安装在 d:/programs
  3. 安装时,基本上是傻瓜式安装,解压就可以使用
  4. 安装看老师的演示:
  5. 解压后,我们会看到 d:/go 目录,这个是 sdk

windows 下配置 Golang 环境变量

为什么需要配置环境变量

配置环境变量介绍

根据 windows 系统在查找可执行程序的原理,可以将 Go 所在路径定义到环境变量中,让系统帮我们去找运行执行的程序,这样在任何目录下都可以执行 go 指令。

在 Go 开发中,需要配置哪些环境变量

如何配置

步骤 1:先打开环境变量配置的界面

步骤 2: 配置我们的环境变量

对上图的一个说明:

  1. Path 这个环境变量不需要在创建,因为系统本身就有,你后面增加即可
  2. 增加 Go 的 bin : ;%GOROOT%\bin

对上图的一个说明

  1. GOPATH :就是你以后 go 项目存放的路径,即工作目录

  2. GOPATH:是一个新建的环境变量

测试一下我们的环境变量是否配置 ok

注意:配置环境变量后,需要重新打开一次 dos 的终端,这样环境变量才会生效。

Go 语言快速开发入门

需求

要求开发一个 hello.go 程序,可以输出 "hello,world”

开发的步骤

  1. 开发这个程序/项目时,go 的目录结构怎么处理.

  1. 代码如下:

对上图的说明 (1) go 文件的后缀是 .go

(2) package main 表示该 hello.go 文件所在的包是 main, 在 go 中,每个文件都必须归属于一个包。

(3) import “fmt” 表示:引入一个包,包名 fmt, 引入该包后,就可以使用 fmt 包的函数,比如:fmt.Println

(4) func main() { }

func 是一个关键字,表示一个函数。 main 是函数名,是一个主函数,即我们程序的入口。

(5) fmt.Println(“hello”) 表示调用 fmt 包的函数 Println 输出 “hello,world”

  1. 通过 go build 命令对该 go 文件进行编译,生成 .exe 文件.

  1. 运行 hello.exe 文件即可

  1. 注意:通过 go run 命令可以直接运行 hello.go 程序 [类似执行一个脚本文件的形式]

linux 下如何开发 Go 程序

说明:linux 下开发 go 和 windows 开发基本是一样的。只是在运行可执行的程序时, 是以 ./文件名方式 演示: 在 linux 下开发 Go 程序。

编译和运行 hello.go

Golang 执行流程分析

如果是对源码编译后,再执行,Go 的执行流程如下图

如果我们是对源码直接 执行 go run 源码,Go 的执行流程如下图

两种执行流程的方式区别

  1. 如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有 go 开发环境的机器上,仍然可以运行
  2. 如果我们是直接 go run go 源代码,那么如果要在另外一个机器上这么运行,也需要 go 开发环境,否则无法执行。
  3. 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了很多。

编译和运行说明

  1. 有了 go 源文件,通过编译器将其编译成机器可以识别的二进制码文件。
  2. 在该源文件目录下,通过 go build 对 hello.go 文件进行编译。可以指定生成的可执行文件名,在windows 下 必须是 .exe 后缀。

  1. 如果程序没有错误,没有任何提示,会在当前目录下会出现一个可执行文件(windows 下是.exe,Linux 下是一个可执行文件),该文件是二进制码文件,也是可以执行的程序。

  2. 如果程序有错误,编译时,会在错误的那行报错。有助于程序员调试错误.

  1. 运行有两种形式

Go 程序开发的注意事项

  1. Go 源文件以 "go" 为扩展名。
  2. Go 应用程序的执行入口是 main()函数。 这个是和其它编程语言(比如 java/c)
  3. Go 语言严格区分大小写。
  4. Go 方法由一条条语句构成,每个语句后不需要分号(Go 语言会在每行后自动加分号),这也体现出 Golang 的简洁性。
  5. Go 编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一个,否则报错

  1. go 语言定义的变量或者 import 的包如果没有使用到,代码不能编译通过。

  1. 大括号都是成对出现的,缺一不可。

Go 语言的转义字符(escape char)

说明:常用的转义字符有如下:

  1. \t : 表示一个制表符,通常使用它可以排版。

  1. \n :换行符
  2. \ \:一个\
  3. \ " :一个"
  4. \r :一个回车 fmt.Println("天龙八部雪山飞狐\r 张飞");
  5. 案例截图

课堂练习

作业评讲:

package main

import "fmt"
func main() {
	//要求:要求:请使用一句输出语句,达到输入如下图形的效果
	fmt.Println("姓名\t 年龄\t 籍贯\t 地址\njohn\t20\t 河北\t 北京")
}

Golang 开发常见问题和解决方法

文件名或者路径错误

小结和提示

学习编程最容易犯的错是语法错误 。Go 要求你必须按照语法规则编写代码。如果你的程序违反了语法规则,例如:忘记了大括号、引号,或者拼错了单词,Go 编译器都会报语法错误,要求:尝试着去看懂编译器会报告的错误信息。

注释(comment)

介绍注释

用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性; 注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去体现。

在 Golang 中注释有两种形式

  1. 行注释

基本语法

// 注释内容

举例

  1. 块注释(多行注释)

基本语法 /* 注释内容 */ 举例说明

使用细节

  1. 对于行注释和块注释,被注释的文字,不会被 Go 编译器执行。
  2. 块注释里面不允许有块注释嵌套 [注意一下]

规范的代码风格

正确的注释和注释风格:

  1. Go 官方推荐使用行注释来注释整个方法和语句。
  2. 带看 Go 源码

正确的缩进和空白

  1. 使用一次 tab 操作,实现缩进,默认整体向右边移动,时候用 shift+tab 整体向左移 看老师的演示:
  2. 或者使用 gofmt 来进行格式化 [演示]

  1. 运算符两边习惯性各加一个空格。比如:2 + 4 * 5

  1. Go 语言的代码风格.
package main
import "fmt"
func main() {
fmt.Println("hello,world!")
}

上面的写法是正确的.

package main
import "fmt"
func main()
{
fmt.Println("hello,world!")

上面的写法不是正确,Go 语言不允许这样编写。 【Go 语言不允许这样写,是错误的!】 Go 设计者思想: 一个问题尽量只有一个解决方法

  1. 一行最长不超过 80 个字符,超过的请使用换行展示,尽量保持格式优雅

举例说明

Golang 官方编程指南

说明: Golang 官方网站 https://golang.org

点击上图的 tour -> 选择 简体中文就可以进入中文版的 Go 编程指南 。

Golang 官方标准库 API 文档, https://golang.org/pkg 可以查看 Golang 所有包下的函数和使用

解释术语:API api : application program interface :应用程序编程接口。 就是我们 Go 的各个包的各个函数。

Golang 标准库 API 文档

  1. API (Application Programming Interface,应用程序编程接口)是 Golang 提供的基本编程接口。
  2. Go 语言提供了大量的标准库,因此 google 公司 也为这些标准库提供了相应的 API 文档,用于告诉开发者如何使用这些标准库,以及标准库包含的方法。
  3. Golang 中文网 在线标准库文档: https://studygolang.com/pkgdoc
  4. Golang 的包和源文件和函数的关系简图

  1. 有一个离线版的 Golang_Manual_By_AstaXie_20120522.chm

知识回顾

Go 语言的 SDK 是什么? SDK 就是软件开发工具包。我们做 Go 开发,首先需要先安装并配置好 sdk.

Golang 环境变量配置及其作用。 GOROOT: 指定 go sdk 安装目录。 Path: 指令 sdk\bin 目录:go.exe godoc.exe gofmt.exe GOPATH: 就是 golang 工作目录:我们的所有项目的源码都这个目录下。

Golang 程序的编写、编译、运行步骤是什么? 能否一步执行? 编写:就是写源码 编译:go build 源码 =》 生成一个二进制的可执行文件 运行:1. 对可执行文件运行 xx.exe ./可执行文件 2. go run 源码

Golang 程序编写的规则。

  1. go 文件的后缀 .go
  2. go 程序区分大小写
  3. go 的语句后,不需要带分号
  4. go 定义的变量,或者 import 包,必须使用,如果没有使用就会报错
  5. go 中,不要把多条语句放在同一行。否则报错
  6. go 中的大括号成对出现,而且风格

func main() { //语句 }

简述:在配置环境、编译、运行各个步骤中常见的错误 对初学者而言,最容易错的地方拼写错误。比如文件名,路径错误。拼写错误

end
  • 作者:AWhiteElephant(联系作者)
  • 发表时间:2022-05-26 15:52
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 转载声明:如果是转载栈主转载的文章,请附上原文链接
  • 评论