Golang - 简介、环境搭建、设置代理

时间:2024-03-10 07:50:28

Golang的官方网站:https://golang.org/
如因不可抗力因素,可以使用备用网站:https://golang.google.cn/


Golang的一些基本特性

  • 静态、强类型、编译型语言
  • 安全、性能强
  • 弱化的指针
    指针比较难,Golang对其进行了简化,俗称弱化的指针
    体验一个指针案例:
//golang函数的参数格式:形参名写在前面,数据类型写在后面
//在数据类型前面加上星花符号(*)就是一个指针类型了
func testPtr(num *int) {
	*num = 20 //用星花符号取得指针所指向的值
}
  • 包的概念
    包用于组织管理程序结构、代码文件和项目的管理,以包的形式来管理源代码文件和函数。每一个Go文件都要在一个包中,而不能单独存在!如果一个文件不属于一个包,那么就会报错!
    如下图所示,不指定包名,就会报错:

    说白了,一个包就是一个文件夹。需要注意的是:一个包下面,只能有一个main函数
  • 垃圾回收机制,内存自动回收
    C语言是需要程序猿自己去手动管理内存回收,稍不注意就会引发内存泄漏(很快吃光内存)
  • 天生自带并发
    从语言层面就支持并发,实现简单,有效利用多核CPU的性能
  • 吸收了管道通信机制channel
    实现了不同的goroute之间的相互通信
  • 函数可以返回多个值
    体验代码:
//第二个括号中放入返回值的类型
func getSumAndSub(n1 int, n2 int) (int, int) {
	sum := n1 + n2
	sub := n1 - n2

	return sum, sub
}
  • 完全支持UTF-8
    不仅体现在Golang可以处理使用UTF-8编码的字符串,就连它的源码文件格式都是使用UTF-8编码,真正地做到了国际化!
  • 其他的创新
    切片(slice),对底层数据的引用。
    延迟执行(defer),在函数中更加及时、方便地回收资源。函数执行完了,再去执行defer中的代码。
  • Go = C + Python
    既有编译型语言的安全和性能,又有动态语言的开发效率。针对上面的公式,有一个夸大的说法:C的性能,Python的开发效率


Golang的应用领域

  • 区块链最主流的编程语言
    区块链技术(Blockchain Technology:BT),分布式账本技术,互联网数据库技术。其特点是去中心化、公开透明,让每个人均可参与数据记录。
  • 后台的服务应用
    美团后台流量支撑、网友仙侠道、B站后台……
  • 云计算/云服务后台应用
    盛大云CDN(内容分发网络);京东消息推送云服务/京东分布式文件系统;
    七牛云,有些资料上说七牛云是大陆最早用Golang做后台的互联网企业,2011年Golang语法还未稳定时,七牛云就使用Golang了;


对程序的概述

什么是程序?为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合。
如何指挥电脑?人不能直接指挥电脑,那么就先编写源代码,然后对源代码进行编译处理得到一个二进制的可执行文件,电脑可以运行这个二进制可执行文件。也就是:把要执行的一组指令交给电脑,电脑会去逐条执行指令。


一、安装Golang

Golang的下载网站:https://golang.google.cn/dl/
官方推荐的安装方式:使用压缩包+配置环境变量的方式搭建Golang开发环境。
使用压缩包的好处就是当今后,Go有新的版本时,把新版本的压缩包下载下来、解压、覆盖,即可。不用再重新安装了。

1.Windows安装篇

1.1 下载压缩包

根据系统的位数选择对应的压缩包即可。后缀以zip结尾的就是适用于Windows环境下的压缩包。

1.2 解压

找一个合适的路径,将压缩包解压开即可。
注意:路径中不要出现任何非英文字符、空格、特殊符号!。官方推荐的安装路径是C:\Go

1.3 配置环境变量

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

环境变量 说明
GOROOT 指定GolangSDK的安装路径,Go安装的目录
Path 添加SDK下bin的目录,就是go.exe所在目录
GOPATH 工作目录,Go项目的路径。说白了就是项目源代码的存放目录
1.3.1 新建GOROOT

1.3.2 编辑Path,添加Go.exe的路径


新增%GOROOT%\bin;

1.3.3 新增GOPATH

Go项目放在哪个目录下,指定根目录即可,不必跟踪到src目录中去。Ps:这一点也是Golang被人吐槽比较多的一点

1.4 测试

测试代码:

package main

import "fmt"

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

运行结果如下,就是安装成功了:

1.5 注意事项

a). Windows中,切记不要使用Text去写代码!Windows的Text有一个叫"bom头"的玩意儿,开头是三个无法显示的字符。Windows独有的问题,类Unix系统没有这问题。
b). 如果用了Windows的Text,需要选择另存为UTF-8

否则,一旦运行就会报这个错误:

2.Ubuntu server安装篇

安装方式同理于Windows环境下的压缩包安装方式。
备注:我是自己的学习环境,为了偷懒,直接使用了root权限。

2.1 确定系统版本
uname -a


官方推荐:下载压缩包,解压后即可直接使用二进制可执行文件(Linux中就是go可执行文件,同理于go.exe,只是Linux系统没有后缀这个概念)
知道了版本信息就去找到对应的压缩包:

2.2 安装代码如下
// 更新系统源
apt update
apt upgrade -y

// 下载
wget https://dl.google.com/go/go1.13.5.linux-amd64.tar.gz

// 解压
tar -xvf go1.13.5.linux-amd64.tar.gz

// 建立存放Go项目的文件夹
mkdir goProject

// 移动到系统路径下
mv go /usr/local

// Golang环境变量
vim /etc/profile
// 在文件的末尾添加下面2行代码
export GOROOT=/usr/local/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
export GOPATH=/root/goProject

// 重新加载一下配置文件
// 修改的是 /etc/ 目录下的全局配置文件,所以也要刷新 /etc/ 目录下的 profile 文件。
// 别刷成了 ~/.profile,这是当前用户的配置文件,是局部配置文件
source /etc/profile
  • Go开发中需要配置哪些环境变量
环境变量 说明
GOROOT 指定GolangSDK的安装路径,Go安装的目录
PATH 添加SDK下bin的目录,就是go.exe所在目录
GOPATH 工作目录,Go项目的路径。说白了就是项目源代码的存放目录
2.3 校验是否安装成功
go version
go env

能打印出以下内容,就证明Golang安装成功了

2.4 测试

测试代码直接拿了上面Windows环境测试的代码。

2.5 参考文献

https://tecadmin.net/install-go-on-ubuntu/



二、环境搭建

2.1 关于SDK

SDK - Software Development Kit 软件开发工具包,提供给开发者使用,包含了对应开发语言的工具包。包括运行的工具、编译的工具、一堆的API……
代码写完后,它是无法直接使用的。需要SDK把代码编译成可执行文件,才能交给计算机进行执行。
做Golang开发,首先需要安装并配置好SDK。原理相当于:你要处理图片,就需要先安装PS

2.2 本地环境搭建

IDE工具我选择了目前全宇宙最好用的Golang集成开发工具,就像搞Python开发的Pycharm那样牛逼。
我安装的版本是2018.3.6,安装完后启动它,我的习惯是不引入任何设置。全新的IDE它会要求你进行配置。
根据IDE的提示,可以如下操作:

选择本地磁盘中Go安装包的根目录即可。
测试:

2.3 远程Linux代码同步

未来的Web服务都是跑在Linux服务器系统上的,因此很有必要事先设置好代码同步。
以下快捷键基于Win7下的Goland2018.3.6

2.3.1 Delpoyment - SFPT

打开设置页面,快捷键:ctrl+alt+s

2.3.2 写一个名字

只是为了自己区分而已,符合Goland的规则即可:

2.3.3 填写服务器信息

2.3.4 手动上传测试

先通过手动上传的方式,测试一下文件同步是否可用:

能够看到文件上传成功,就说明远程同步没问题了:

2.3.5 设置上传模式

不设置的话,就算按ctrl+s也不会上传文件!
根据个人习惯,可设置手动也可以是自动:

我个人习惯自动保存:

2.4 Linux上安装Golang调试工具

未来项目是要跑在Linux服务器上的,调试工具也肯定是安装在Linux服务器上。

2.4.1 下载dlv

Delve就是用Golang开发的调试工具,调试Golang代码的。

go get -u github.com/go-delve/delve/cmd/dlv

下载的软件包会存在放当前目录下(这个dlv默认的文件夹名称也是"go"),下载完毕就可以直接使用。cd进bin目录,找到dlv这个文件。直接./dlv debug xxx.go就可以调试Golang代码了。

2.4.2 给dlv找个合适的路径

与Golang有关的工具,我习惯把它移动到Golang的安装目录下,步骤如下:

// 重命名,以避免跟golang的SDK名称起冲突
mv go go-delve

// 移动到Golang安装的根目录下
cp -r go-delve/ $GOROOT/go

// 创建软链,之后可以直接用dlv
ln -s $GOROOT/bin/go-delve/bin/dlv /usr/local/bin/

// 打印版本信息,确定是否成功
dlv version

打印出了版本信息,就表明没有:

2.4.3 参考文献

调试教程可看这篇文章:

https://yq.aliyun.com/articles/57578

2.5 Goland配置

在Windows的Goland上配置远程调试器:



但因为我是老爷机,32bit没法跑delve:

Goland配置的参考文献:

https://blog.csdn.net/foxlively/article/details/90697909



三、为go get设置代理

因不可抗力因素,go get很多模块无法下载或者下载极慢,所以只能找代理。

3.1 Ubuntu Server

go 1.13及以上可以直接设置:

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
source ~/.profile

// 测试一下
go get -u github.com/gin-gonic/gin

参考文献:

https://www.toutiao.com/a6746004933880840711