Go初探-DateWhale开源学习

Go初探

目录

Go语言的发展历史

go语言(或Golang)是Google开发的开源编程语言,诞生于200612日下午1545秒,于200911月开源,2012年发布go稳定版。Go语言在多核并发上拥有原生的设计优势,Go语言从底层原生支持并发,无须第三方库、开发者的编程技巧和开发经验。

go是非常年轻的一门语言,它的主要目标是“兼具Python等动态语言的开发速度和C/C++等编译型语言的性能与安全性”

很多公司,特别是中国的互联网公司,即将或者已经完成了使用Go语言改造旧系统的过程。经过Go语言重构的系统能使用更少的硬件资源获得更高的并发和I/O吞吐表现。充分挖掘硬件设备的潜力也满足当前精细化运营的市场大环境。

Go语言的并发是基于goroutine的,goroutine类似于线程,但并非线程。可以将goroutine理解为一种虚拟线程。Go语言运行时会参与调度goroutine,并将goroutine合理地分配到每个CPU 中,最大限度地使用CPU性能。开启一个goroutine的消耗非常小(大约2KB的内存),你可以轻松创建数百万个goroutine

goroutine的特点:

1.goroutine具有可增长的分段堆栈。这意味着它们只在需要时才会使用更多内存。
2.goroutine的启动时间比线程快。
3.goroutine原生支持利用channel安全地进行通信。
4.goroutine共享数据结构时无需使用互斥锁。

Go语言特性

  • 自动垃圾回收
  • 更丰富的内置类型
  • 函数多返回值
  • 错误处理
  • 匿名函数和闭包
  • 类型和接口
  • 并发编程
  • 反射
  • 语言交互性

Go语言结构

  • 包声明
  • 引入包
  • 函数
  • 变量
  • 语句 &表达式
  • 注释
package main			// 声明 main 包,表明当前是一个可执行程序

import "fmt"		   // 导入内置 fmt 
func main() {		   // main函数,是程序执行的入口
   /* print Hello, World! */
   fmt.Println("Hello, World!") // 在终端打印 Hello World!
}

解释:

  • package main定义了包名。必须在源文件中非注释的第一行指明这个文件属于哪个包。
  • package main表示一个可独立执行的程序,每个 Go应用程序都包含一个名为main的包。
  • import "fmt"告诉编译器程序运行需要用fmt包。
  • func main() 是程序开始执行的函数,main函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有init()函数则会先执行该函数)。
  • {}"{"不可以单独放一行。
  • /.../是注释,在程序执行时将被忽略。//单行注释, /* ... */多行注释也叫块注释,不可以嵌套使用,一般用于包的文档描述或注释成块的代码片段。
  • fmt.Println(...)将字符串输出到控制台,并在最后自动增加换行字符 \n。用fmt.Print("hello, world\n")可以得到相同的结果。

与其他主要编程语言的差异

  • 退出返回值
    • Gomain函数不支持任何返回值
    • 可以通过os.Exit来返回状态

Go的环境搭建

在开始我们的Go语言学习之旅,第一步当然是开发环境的搭建,工欲善其事,必先利其器。

Go的安装

go官方:
https://golang.org/

下载地址:
https://golang.org/dl/

安装文档:
https://golang.org/doc/install

Go语言Windows系统开发环境配置

Go是开源的,在Go官网上,对于windows操作系统有两种安装方法,也就是提供了不同的文件:
在这里插入图片描述
我们可以看到一种是.msi,一种是.zip
对于windows操作系统不熟悉的人来说,这里有必要介绍一下什么是.msi
msi就是microsoft installer的简写,是微软格式的安装包。

两种包有何区别呢?
.zip下载后,我们解压,然后需要手动配置环境变量。
.msi下载后,安装,会自动帮我们把环境变量配置好。

下载就分别就两种格式的包进行说明。

zip格式安装

解压到某一位置,比如C:\Go
这里需要注意,如果你指定的位置不是C:\Go,你还必须设置GOROOT这个环境变量,指向你所解压的位置。
PATH环境变量中加入路径:C:\Go\bin

msi格式安装

下载完成后直接安装就可以了。
安装成功后,cmd中输入go version,就会出现版本情况

接下来也要配置GOPATH,和上面的方法一样,这里不再赘述了。

应用

D:\go_workspace\src下新建一个hello.go
键入代码:

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

然后运行

补充

其实还有一些环境变量可以设置,这就因人而异了:

  • GOROOTGo的安装目录
  • GOPATH:用于存放Go语言Package的目录,这个目录不能在Go的安装目录中
  • GOBINGo二进制文件存放目录,写成%GOROOT%\bin就好
  • GOOS:操作系统
  • GOARCH:指定系统环境,i386表示x86amd64表示x64
  • PATH:需要将%GOBIN%加在PATH变量的最后,方便在命令行下运行Go

然后可以在cmd中输入go env查看环境变量的配置情况。

Go语言Linux开发环境配置
  1. SSH远程登录你的linux服务器

  2. 安装 mercurial包

[root@localhost ~]# yum install mercurial
  1. 安装git包
[root@localhost ~]# yum install git
  1. 安装gcc
[root@localhost ~]# yum install gcc
  1. 下载Go的压缩包:(可选择最新的Go版本)
[root@localhost ~]# cd /usr/local/

[root@localhost local]# wget https://go.googlecode.com/files/go1.15.linux-amd64.tar.gz

注意:如果不能翻墙,去go语言资源站下载相应的包。然后通过ftp上传到此目录。

  1. 下载完成 or ftp上传完成,用tar命令来解压压缩包。
[root@localhost local]# tar -zxvf go1.13.linux-amd64.tar.gz
  1. 建立Go的工作空间(workspace,也就是GOPATH环境变量指向的目录)

GO代码必须在工作空间内。工作空间是一个目录,其中包含三个子目录:

src ---- 里面每一个子目录,就是一个包。包内是Go的源码文件

pkg ---- 编译后生成的,包的目标文件

bin ---- 生成的可执行文件

这里,我们在/home目录下, 建立一个名为go(可以不是go, 任意名字都可以)的文件夹, 然后再建立三个子文件夹(子文件夹名必须为srcpkgbin)。

[root@localhost local]# cd /home/
[root@localhost home]# mkdir go
[root@localhost home]# cd go/
[root@localhost go]# mkdir bin
[root@localhost go]# mkdir src
[root@localhost go]# mkdir pkg
  1. 添加PATH环境变量and设置GOPATH环境变量
[root@localhost go]# vim /etc/profile

加入下面这三行:

export GOROOT=/usr/local/go           ##Golang安装目录
export PATH=$GOROOT/bin:$PATH
export GOPATH=/home/go 				  ##Golang项目目录

保存后,执行以下命令,使环境变量立即生效:

[root@localhost go]# source /etc/profile    ##刷新环境变量

至此,Go语言的环境已经安装完毕。

  1. 验证一下是否安装成功,如果出现下面的信息说明安装成功了
[root@localhost go]# go version        ##查看go版本
go version go1.15.5 linux/amd64
Go语言Mac开发环境配置

MAC有两种方式安装Go

1. 通过brew安装

在终端输入brew install go或者brew install golang,安装之前可以用 brew info go 查看版本信息

2. Mac上,使用pkg文件,下载即可:

在这里插入图片描述
直接双击安装就可以了

测试

之后进行测试
打开Mac上的终端,输入命令:go version
如下:

go version
go version go1.15.5 darwin/amd64
配置环境

安装完sdk之后接下来便是配置环境变量了,打开终端输入cd ~ 进入用户主目录,之后输入ls -all命令查看是否存在.bash_profile文件,存在的话就是使用vim .bash_profile打开并编辑该文件。根据自己实际情况,内容如下:

export GOPATH=/Users/local/Documents/workspace/
export GOBIN=GOPATH/binexportPATH=PATH:$GOBIN

GOPATH:日常开发的根目录。
GOBIN:是GOPATH下的bin目录

IDE选择

IDE需知:vscodegoland,推荐使用vscodevscode免费,goland收费。

vscode地址:https://code.visualstudio.com/

goland地址:https://blog.jetbrains.com/go/

  • 不管是哪个系统,需要配置go安装环境到path环境变量里面。
  • goland只需要选择go对应的sdk配置即可,也就是把go安装的路径添加进去,使用安装的go环境进行编译,不需要安装任何额外插件。
    vscode需要安装额外插件,在插件市场里面直接搜索go,随后进行安装即可,在安装的时候容易出现下载失败问题,此时需要更换为国内源,如下设置:
windows设置:
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
MacOS or Linux
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
vscode 安装所有工具-插件

vscode中按下 ctrl/command + shift +p 打开命令窗口,输入goin 然后选install/Update tools,弹出go插件列表,选择 全部勾选,确认安装。

不出意外会失败,因为vscode利用go get下载,而部分插件在国内访问不到,所以需要配置代理。

终端输入:

设置你的 bash 环境变量
echo "export GOPROXY=https://goproxy.io" >> ~/.profile && source ~/.profile

#如果你的终端是 zsh,使用以下命令
echo "export GOPROXY=https://goproxy.io" >> ~/.zshrc && source ~/.zshrc

重新执行以上 vscode安装即可成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值