基础入门


1 Golang简介

  Go(Golang)是Google的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go语言的语法与 C 相近,但功能上有:内存安全、GC(垃圾回收),结构形态及CSP-style并发计算。

  Go语言的特点:

   1.背靠大厂,google背书,可靠

   2.天生支持并发(最显著特点)

   3.语法简单,容易上手

   4.内置runtime,支持垃圾回收

   5.可直接编译成机器码,不依赖其他库

   6.丰富的标准库

   7.跨平台编译

  Go语言的应用领域:服务器编程、开发云平台、区块链、分布式系统、网络编程。

  使用Go语言的公司(项目)

公司 项目
Google Kubernetes
Facebook facebookgo
腾讯 蓝鲸平台、容器技术
百度 运维项目BFE
京东 消息推送系统、云存储、京东商城
小米 运维监控系统、小米互娱、小米商城、小米视频、小米生态链
360 日志搜索系统Poseidon

2 Go语言开发环境

2.1 windows平台

  1.下载安装包并配置环境变量

   下载地址:https://golang.google.cn/dl/

   安装路径选择一个比较好找的路径,例如:D:\Go,其他安装都选择”下一步“即可。

   安装完成后,把D:\Go\bin目录添加到环境变量(系统变量-Path中添加),这里就可以使用go了,在命令行输入 go version查看版本,输出结果如下所示。

C:\Users\bestv>go version
go version go1.26.2 windows/amd64

  2.配置Go环境

   使用go mod管理库,需要科学上网

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

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

  3.安装配置git

   下载地址:https://www.git-scm.com/download/

   安装路径选择一个比较好找的路径,例如:D:\Git,其他安装都选择”下一步“即可。

   安装完成后,把D:\Git\bin目录添加到环境变量(系统变量-Path中添加),这里就可以使用go了,在命令行输入 git version查看版本,输出结果如下所示。

C:\Users\bestv>git version
git version 2.54.0.windows.1

# 测试git拉取项目
# git clone相当于go get
C:\Users\bestv>git clone https://github.com/gin-gonic/gin.git
Cloning into 'gin'...
remote: Enumerating objects: 11207, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (83/83), done.
remote: Total 11207 (delta 100), reused 45 (delta 45), pack-reused 11079 (from 4)
Receiving objects: 100% (11207/11207), 10.39 MiB | 10.74 MiB/s, done.
Resolving deltas: 100% (6214/6214), done.

  4.goroot和gopath

   goroot就是go安装的根目录,gopath就是go项目所在的路径,高版本go项目已经不再依赖gopath来管理项目,使用go mod来管理项目。

2.2 Linux平台

  如果不是要在Linux平台敲go代码就不需要在Linux平台安装Go,写好的go代码只需要跨平台编译好之后就可以拷贝到Linux服务器上运行,这也是go程序跨平台易部署的优势。

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

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

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

tar -zxvf go1.26.2.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.26.2 linux/amd64

2.3 Mac平台

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

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

go version go1.26.2 darwin/amd64

3 Golang开发工具

  golang的开发工具有很多,例如:vim、sublime、atom、LiteIDE、eclipse、goland、vscode

  1.使用goland开发Go应用

   goland是一款付费的、功能强大的golang集成开发环境,是Jetbrain公司的产品。下载地址:https://www.jetbrains.com/go/ goland非常智能,几乎不需要配置,安装即用。

  2.使用vscode开发Go应用

   1.下载安装vscode https://code.visualstudio.com/

   2.下载安装插件,参考文档:https://marketplace.visualstudio.com/items?itemName=golang.go

   3.安装code runner运行脚本

# 快捷键:pkgm---创建主包和主方法    fp---打印的快速补齐
# 运行:1.go run main.go   2.安装code runner插件后直接运行
package main

import "fmt"

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

4 Golang常用命令

  在终端中输入 go help 即可显示所有的 go 命令以及相应命令功能简介,主要有下面这些:

命令 说明 命令 说明
build 编译包和依赖 list 列出包
clean 移除对象文件 run 编译并运行go程序
doc 显示包或者符号的文档 test 运行测试
env 打印go的环境信息 tool 运行go提供的工具
bug 启动错误 version 显示go的版本
fix 运行go tool fix vet 运行go tool vet
fmt 运行gofmt进行格式化 generate 从processing source生成go文件
install 编译并安装包和依赖 get 下载并安装包和依赖

  参考文档:https://golang.org/doc/cmd

PS C:\Users\bestv\Desktop\go_pro> go run main.go
Hello,Go
PS C:\Users\bestv\Desktop\go_pro> go build main.go
PS C:\Users\bestv\Desktop\go_pro> go mod init go_pro
go: creating new go.mod: module go_pro
go: to add module requirements and sums:
        go mod tidy
PS C:\Users\bestv\Desktop\go_pro> go get github.com/go-sql-driver/mysql
go: downloading github.com/go-sql-driver/mysql v1.10.0
go: downloading filippo.io/edwards25519 v1.2.0
go: added filippo.io/edwards25519 v1.2.0
go: added github.com/go-sql-driver/mysql v1.10.0
PS C:\Users\bestv\Desktop\go_pro> go list
go_pro
PS C:\Users\bestv\Desktop\go_pro> go version
go version go1.26.2 windows/amd64
PS C:\Users\bestv\Desktop\go_pro> 

5 VSCode快捷键

  1.快捷键位置:File->Preferences->Keyboard Shortcuts

  2.常用快捷键

1. 行注释 ctrl + /
2. 块注释 shift+alt+a (可以修改为ctrl+shift+/)
3. ctrl+a 全选
4. ctrl+c 复制
5. ctrl+v 粘贴
6. ctrl+shift+k 删除行
7. ctrl+e  查找文件
8. ctrl+shift+p 打开设置命令行

  3.修改快捷键

   1.打开快捷键 File->Preferences->Keyboard Shortcuts

   2.双击要修改的快捷键

   3.键盘输入想要使用的快捷键

  4.快速生成代码片段

1.pkgm  main包+main主函数
2.ff  fmt.Printf("", var)
3.for for i := 0; i < count; i++ {}
4.forr for _, v := range v {}
5.fmain func main() {}
6.a.print! fmt.Printf("a: %v\\n", a)

6 编写Golang代码

  1.代码组织

   Go应用使用模块来组织代码,包对应到文件系统就是文件夹,模块就是**.go**的go源文件。一个包中会有多个模块,或者多个子包。

  2.Go项目管理工具

   早期的go项目使用gopath来管理项目,不方便而且容易出错,golang 1.11 开始使用gomod管理项目,当然还有第三方模块例如:govendor

  3.实现步骤

   3.1 创建项目:新建文件夹(Go_pro)

   可通过在文件夹中通过cmd的方式,再输入code .以便于在vscode打开

   3.2 初始化项目:通过go mod init 项目名去初始化项目

# go mod init 项目名
go mod init Go_pro

   3.3 创建包:包名可以随意指定,一般包文件夹名称和包名是一致的

# user是包名
package user

func Hello() string {
	return "Hello,Golang!"
}

   3.4 创建模块与相互调用

package main

// 导入包user
import (
	"Go_pro/user"
	"fmt"
)

func main() {
	// 调用方法   user.Hello().var!...
	s := user.Hello()
	fmt.Printf("s: %v\n", s)

	// s := user.Hello()
	// s.print!  ===> fmt.Printf("s: %v\n", s)
}


文章作者: 罗宇
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 罗宇 !
 本篇
基础入门 基础入门
Go(Golang)是Google开发的一种静态强类型、编译型语言。语法与C相近,但功能上有:内存安全、GC(垃圾回收),结构形态及CSP-style并发计算。
下一篇 
变量、常量与数据类型 变量、常量与数据类型
Go(Golang)是Google开发的一种静态强类型、编译型语言。语法与C相近,但功能上有:内存安全、GC(垃圾回收),结构形态及CSP-style并发计算。
  目录