01 | 初识 Go

本贴最后更新于 397 天前,其中的信息可能已经东海扬尘

1. GO 语言介绍

1.1 GO 语言是什么

Go 是一种开源的程序设计语言,它意在使得人们能够方便地构建简单、可靠、高效率的软件”(来自 go 官网 golang.org)

我们程序员在开发程序,开发软件时都会选择一门编程语言,那么我们应该怎样进行选择呢?可能有同学会说,我们要选择一门简单的,容易学习的,而且开发效率高的,能够在很短的时间内开发完成一个软件,这样老板会非常的满意,能够升职加薪,Python 语言或者 Ruby 语言就非常适合这种快速开发。但是问题是,用这种语言开发的软件,当用户量多了,运行的速度会非常慢,给人的感觉就是非常卡,大家想一下这种软件还有人愿意使用吗?那可能又有同学说了,我们要学习运行速度快的编程语言,例如 C 或者是 C++,但是这类编程语言学习难度是非常大的。那么有没有一种编程语言,学习非常简单,开发速度非常快,开发出的软件电脑运行速度非常快呢?有,就是我们今天开始学习的 GO 语言。GO 语言借鉴了 Python 等其它编程语言简单,易学,生产效率高,同时 GO 语言专门针对多处理器(多核 CPU,在这里可以给学生看一下 windows 下的多核 CPU,)系统的程序进行了优化(让每核 CPU 都能够执行 GO 语言开发的程序),这样使用 GO 语言开发的程序运行的速度可以媲美 C 或 C++ 开发程序的速度。

1.2 GO 语言优势

1:运行速度快,简单易学

2:薪水待遇高

3:适合区块链开发

4:跨平台

5: 丰富的标准库(指令),Go 目前已经内置了大量的库,特别是网络库非常强大 ( 开发飞秋软件 )

6Go 里面也可以直接包含 C 代码,利用现有的丰富的 C

7:语言层面支持并发,这个就是 Go 最大的特色,天生的支持并发。所谓并发,所有正在运行的程序轮流使用 CPU

每个程序允许占用 CPU 的时间非常短(比如 10 毫秒),这样用户根本感觉不出来 CPU 是在轮流为多个程序服务,就好象所有的程序都在不间断地运行一样。并发好处就是可以运行多个程序,并不卡顿。


1.3 GO 语言能干什么

1:网络编程,这一块目前应用最广,例如网站开发。

2:服务器编程,例如:处理日志,处理文件。(在网站开发的过程中都会涉及到)

3:区块链开发

2. 环境安装

前面已经对 GO 语言做了一个简单的介绍,相信大家也已经基本有所了解了,那么我相信大家迫不及待的想学习 GO 语言了,但是我们在具体学习 GO 语言前,需要先安装 GO 的开发环境,只有把 GO 的开发环境安装好了,才能有 GO 语言的指令来开发网站,飞秋等等软件。也就是所谓的环境安装,就是将 GO 语言的指令都安装在你的电脑上,那么你在开发软件的时候就可以直接用了。GO 环境的安装分为 windows 系统的安装,linux 系统的安装和 mac 系统安装。根据自己的实际情况进行选择安装。

2.1 下载 Go

2.1.1 下载地址

Go 官网下载地址:https://golang.org/dl/

Go 官方镜像站(推荐):https://golang.google.cn/dl/

2.1.2 版本的选择

Windows 平台和 Mac 平台推荐下载可执行文件版,Linux 平台下载压缩文件版。

下图中的版本号可能并不是最新的,但总体来说安装教程是类似的。Go 语言更新迭代比较快,推荐使用较新版本,体验最新特性。

image

2.2 安装 Go

2.2.1 Windows 安装

此安装实例以 64位Win10 系统安装 Go1.14.1可执行文件版本 为例。

将上一步选好的安装包下载到本地。

image

双击下载好的文件,然后按照下图的步骤安装即可。imageimageimageimageimageimage

2.2.2 Linux 下安装

如果不是要在 Linux 平台敲 go 代码就不需要在 Linux 平台安装 Go,我们开发机上写好的 go 代码只需要跨平台编译(详见文章末尾的跨平台编译)好之后就可以拷贝到 Linux 服务器上运行了,这也是 go 程序跨平台易部署的优势。

我们在版本选择页面选择并下载好 go1.14.1.linux-amd64.tar.gz 文件:

wget https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz

将下载好的文件解压到 /usr/local 目录下:

tar -zxvf go1.14.1.linux-amd64.tar.gz -C /usr/local  # 解压

如果提示没有权限,加上 sudo 以 root 用户的身份再运行。执行完就可以在 /usr/local/ 下看到 go 目录了。

配置环境变量: Linux 下有两个文件可以配置环境变量,其中 /etc/profile 是对所有用户生效的;$HOME/.profile 是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,保存退出。

export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

修改 /etc/profile 后要重启生效,修改 $HOME/.profile 后使用 source 命令加载 $HOME/.profile 文件即可生效。 检查:

~ go version
go version go1.14.1 linux/amd64

2.2.3 Mac 下安装

下载可执行文件版,直接点击下一步安装即可,默认会将 go 安装到 /usr/local/go 目录下。

image

2.2.4 检查

上一步安装过程执行完毕后,可以打开终端窗口,输入 go version 命令,查看安装的 Go 版本。image

2.3 GOROOT 和 GOPATH

GOROOTGOPATH 都是环境变量,其中 GOROOT 是我们安装 go 开发包的路径,而从 Go 1.8 版本开始,Go 开发包在安装完成后会为 GOPATH 设置一个默认目录,并且在 Go1.14 及之后的版本中启用了 Go Module 模式之后,不一定非要将代码写到 GOPATH 目录下,所以也就不需要我们再自己配置 GOPATH 了,使用默认的即可。

想要查看你电脑上的 GOPATH 路径,只需要打开终端输入以下命令并回车:

go env

在终端输出的内容中找到 GOPATH 对应的具体路径。

GOPROXY 非常重要

Go1.14 版本之后,都推荐使用 go mod 模式来管理依赖环境了,也不再强制我们把代码必须写在 GOPATH 下面的 src 目录了,你可以在你电脑的任意位置编写 go 代码。

默认 GoPROXY 配置是:GOPROXY=https://proxy.golang.org,direct,由于国内访问不到 https://proxy.golang.org,所以我们需要换一个 PROXY,这里推荐使用 https://goproxy.iohttps://goproxy.cn

可以执行下面的命令修改 GOPROXY:

go env -w GOPROXY=https://goproxy.cn,direct

3. 第一个 GO 程序

下面我们就用 IDE 工具,开发第一个 GO 程序。具体步骤如下:

  1. 选择文件 ---> 新建 弹出如下对话框。

image


注意:程序名称,和程序保存位置不能输入中文

  1. 新建完成后,开始输入代码。
package main

import "fmt"

func main() {
	fmt.Println("hello world")
}

第一行:每个 Go 源代码文件的开头都是一个 package 声明,表示该 Go 代码所属的包。

GO 语言中是通过包来对代码进行管理的。那么什么是包呢?我通过一个例子来解释一下包的概念。例如:有一家公司叫“京东”,该公司有一个项目叫“京东网上商城”,该项目下面有管理“客户信息”的代码,另外一家公司叫“淘宝”,该公司也有一个项目叫“淘宝网上商城”,该项目下面也有管理的“客户信息”的代码,我开发的“客户管理软件”,既要用到“京东”的客户信息管理代码,也要用到“淘宝”的客户信息管理代码,为了能够很好的区分,我们在使用时必须写清楚,客户的信息管理代码到底是来自哪个商城,所以我可以这样写“import 京东”,表示所使用的“客户信息代码”是来自“京东”的,那么“京东”就是一个标识,也就是包。所以说,包就是一个标识,标志着你写的 GO 代码来自哪 . 这样代码管理非常清晰,使用也非常方便。

那么后面随着我们学习的深入,学习的代码也越来越多,我们给大家去讲解怎样自己创建包,来管理代码。创建包用到的就是 package.

但是,不管你创建多少个包,要想让程序运行,必须包含一个 main 包。如果缺少该包,程序是无法运行的。


第三行代码:import 表示导入,“fmt”是包名.

不管是使用我们自己定义的包还是 GO 自带都是通过 import 导入的,“fmt”是 GO 自带的包,该包 包含了怎样将信息打印在电脑屏幕上。注意包名要用 " " 表示。


第五行代码:表示程序的入口,程序就是从该位置开始执行的,就像是教室的门口一样,注意该行代码是固定的写法,func 与 main 之间必须有空格,同时 main 后面必须带小括号,后面的一对大括号表示要完成的具体工作,也就是完成具体任务的代码必须写在一对大括号内。

func 表示后面跟着的 main 是一个函数,函数必须有一对小括号。什么是函数呢?现在大家可以先理解与我们在数学中学到的函数是一样的,都是实现某个具体的功能,例如我们学习的三角函数等。Main 函数实现的就是入口功能。再次强调一下,GO 语言中的函数前面必须加上 func 这个单词,而且函数名称后面必须跟一对小括号。


第六行代码:就是使用了 fmt 包(注意具体使用的时候不需要加上双引号)中的 Print 函数,将要“hello go” 打印在屏幕上。这行代码要注意的是,fmt 包与 Print 函数之间是用.(点连接的),该点是在半角输入法状态下输入,同时 Print 函数第一个字母 P 是大写的,不能写成小写,也就是说 GO 语言是区分大小写的,有很多同学在这里容易出错。将要输出的信息写在 Print 函数的括号内(注意括号也是在半角状态下输入的),并且用双引号包裹起来(双引号也是半角状态下输入的)


  1. 代码运行

我们第一个 GO 程序已经写完了,那么我们写的程序到底能否运行呢?是否有错误呢?下面我们执行我们的程序,程序的执行分为两步:

(1)、编译

编译的操作步骤:点击 “编译” 菜单,选择 “Build” ( 或者直接按快捷键 Ctrl+B).编译的目的是检查我们写的代码是否出错,如果没有出错,那么会提示“成功”,并且在我们程序所在的目录生成一个.exe 文件,该文件就是可执行文件。如果出错那么会显示错误信息,并且不会生成.exe 文件

(2)、执行

编译操作完成后,我们就可以执行我们的代码了,选择“编译”菜单中的”Run”,执行。执行的就是编译所生成的.exe 文件。这时,有同学可能就会问,如果我们不执行“Build”,直接执行”Run”,可以吗?不可以,因为不执行”Build”就无法生成”.exe”文件,那么也就无法执行。最后,我们为了方便高效可以选择“Run”,这个选项,将编译与执行放在一起操作。

  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    497 引用 • 1388 回帖 • 279 关注
1 操作
huangbiaobiao 在 2023-11-21 10:58:59 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...