The Way To Go!第一次学,我也不是很懂,有错误麻烦指出一下。

Just Go

语言之间没有孰优孰劣,Python的易用和C的高性能都,各家有各家的长处。而掌握一门语言就能走遍天下的时代即将过去(JAVA除外),未来一定是多钟语言之间相互融合相互穿插的时代,而Go的热度趋势也在不断的上升,所以今天开一个新坑,从零学习Go语言。今天就先实现一个Hello world。

起源与发展

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
罗伯特·格瑞史莫(Robert Griesemer),罗布·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。 目前,Go每半年发布一个二级版本(即从a.x升级到a.y)。

安装Go环境

在GooGle的GoLang网站可以直接下载Go的二进制发行版。点击下载
golang-01-2022-10-04-20-55-23

而Go的官网:http://golang.org/ 在国内是没法访问的,需要一点点的爬墙手段。

安装完成后,打开终端,输入go version,可以看到go version go1.19 windows/amd64就代表成功安装了。

配置环境

当我们新建了一个Go文件之后,会提示需要安装Go的依赖,直接在VsCode里面安装依赖是不行的,会提示失败。
由于国内网络的原因,对于一些golang的开发包下载不成功,针对这个情况,go在1.13版本中,添加了如下两个环境变量:

1
2
GO111MODULE         // 设置go module
GOPROXY // 设置代理服务器

Windows在电脑 -> 系统 -> 高级系统设置 -> 用户环境中分别新建GO111MODULE和GOPROXY两个用户变量,其值如下图所示:

1
2
GO111MODULE=on
GOPROXY=https://goproxy.cn,direct

环境变量

Hello World

新建文件夹,然后打开vscode,选择该文件夹->打开文件夹。然后新建一个hello.go文件,输入如下代码:

1
2
3
4
5
6
7
package main

import "fmt"

func main() {
fmt.Println("Hello world!")
}

直接运行的话,会报错:go: cannot find main module; see ‘go help modules’
主要是由于之前设置过GO111MODULE=on,这使得go默认管理依赖的方式变成了go module模式,即依赖一个go.mod文件,其中描述了项目依赖的包和版本(类似于npm package.json,maven的pom.xml)

而目录中没有go.mod文件,所以go不知道主模块是什么,所以无法编译。

使用命令go mod init hello生成一个go.mod文件。

运行代码

使用命令go build hello.go来编译生成hello.exe文件,不过exe文件的运行框会一闪而过,可以加上一个5s的延时。修改代码如下:

1
2
3
4
5
6
7
8
9
10
11
package main

import (
"fmt"
"time"
)

func main() {
fmt.Println("hello world !")
time.Sleep(5 * time.Second)
}

可以在文件夹里找到hello.exe直接运行。

运行

总结

还是挺好用的,可以试试用Go写一些东西。