Go语言简介


Go语言简介

Go语言比较“年轻”,是Google的罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)开发的,它是一种静态强类型、编译型、并发型的编程语言,并具有垃圾回收功能。由于Go语言拥有丰富的生态系统,且其开发团队阵容强大,因此一经问世就得到众多用户的青睐。

Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。

Go语言的特性

1.语法简洁优雅

2.原生支持并发

3.静态链接

4.生态圈十分丰富

开发环境搭建

与绝大多数软件的下载一致,选择与目标操作系统匹配的安装包、二进制文件和源代码。官网提供了各种版本,选择新版本即可。Downloads - go.dev (google.cn)

image-20211216085855975

image-20211216090030885

image-20211216090049414

image-20211216090105479

image-20211216090126480

image-20211216090359693

设置环境变量

环境变量是操作系统在运行时需要设置的参数。和Go相关的几个环境变量为:

  • GOPATH:项目程序目录。
  • GOROOT:Go源代码的安装目录。
  • GOBIN:Go程序经编译后生成的可执行文件的存放目录。

image-20211216090844509

image-20211216090918632

image-20211216090935889

image-20211216091018667

image-20211216091900077

image-20211216091217443

# 查看版本
PS C:\Users\zj> go version
go version go1.17.5 windows/amd64

PS C:\Users\zj> go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\zj\AppData\Local\go-build
set GOENV=C:\Users\zj\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\go
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.5
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\zj\AppData\Local\Temp\go-build3473472474=/tmp/go-build -gno-record-gcc-switches

设置GOPROXY

Go默认的GOPROXY的值是:GOPROXY=https://proxy.golang.org,direct。这个goproxy在使用go get安装第三方库的时候会报错,导致无法下载成功(原因你懂的)。所以必须要修改一下。

$env:GOPROXY="https://goproxy.cn"

image-20211216092445988

set GO111MODULE=on

GO111MODULE环境变量主要是用来开启或关闭模块支持的。

它有三个可选值:off、on、auto,默认值是 auto。

GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。 GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。 GO111MODULE=auto 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持。

IDE

GoLand:网址为https://www.jetbrains.com/。

LiteIDE:网址为http://liteide.org/cn/。

Visual Studio Code:网址为https://code.visualstudio.com。

如果喜欢颜值高、具有自动补全和高亮功能、集成Git、有丰富的插件系统的IDE,那么可以使用GoLand,这是JetBrains旗下专门针对Go语言开发的IDE。JetBrains为不同的编程语言都开发了对应的IDE,开发者只要学会其中一款编程语言的IDE,其他编程语言的IDE的用法基本是一致的。

LiteIDE是一款简单、开源、跨平台的Go IDE。

Visual Studio Code是一款强大的轻量级IDE,支持各种编程语言,当然需要以安装插件的方式来支持。由于它免费且好用,在程序员中广受欢迎。总的标准是:颜值高、好用、接受付费,可以选择GoLand;轻量,可以选择Visual Studio Code。

编写第一个Go程序

创建D:\go\src\helloworld\目录,进入该目录创建main.go文件

package main

import "fmt"

func main() {
    fmt.Println("Hello World!")
}
# 编译执行go程序
PS D:\go\src\helloworld> go build .\main.go
PS D:\go\src\helloworld> .\main.exe      
Hello World!
  • package:表示包名。
  • import:导入内置fmt的库。
  • main:主函数入口。

在Go语言中,一般的程序文件包含包名、依赖包、处理逻辑。