学习Golang系列篇(一)

了解Golang

Golang优缺点

  • 优点
    • 语法简单,易于学习,类C的语法、比C/C++简洁和干净。
    • 自带GC, 方便使用
    • 快速编译,高效执行
    • 简单的依赖管理
    • 并发编程
    • 静态类型,同时有动态语言的特征(var声明)
    • 标准类库,规范统一
  • 缺点
    • 不支持动态加载代码
    • 发展时间短,生态还不够庞大

Go语言用途

  • 巨型中央服务器领域
  • 高性能分布式领域
  • 游戏服务端开发
  • 复杂事件处理
  • 对实时性要求很高的软件开发
  • 可以在Intel和ARM处理器上运行,也可以在安卓上运行

Go语言学习体系

Go语言基础入门
  1. 认识Go语言
  2. 基础语法
  3. 基础数据类型
  4. 复合数据类型
  5. 结构体
  6. 流程控制
Go网络编程
  1. 数据安全
  2. 数据结构和算法
  3. 并发编程
  4. Socket编程
  5. Go与数据库
Go后台分布式应用
  1. RPC技术
  2. 总线与缓存
  3. 分布式锁
  4. 服务发现
  5. 链路追踪
Go开发核心技能
  1. 函数
  2. 面向接口
  3. 反射
  4. 包与工程
  5. 标准库
  6. 日志
  7. 字符串处理
  8. 文件与系统
  9. JSON
    10.Base64编码
Go的Web框架和前后端开发
  1. HTTP应用及Gin、Beego框架实现
  2. Javascript入门
  3. Web基础JQuery
  4. Vue框架入门
  5. Web UI
企业级项目开发和应用
  1. 用户统一管理和认证平台(类似开源的Openldap, AD域)。
  2. 容器云K8S二次开发
  3. 分布式定时任务平台开发
  4. 分布式CICD管理平台
  5. 多云管理平台开发

Go语言Linux环境安装

Go语言软件包下载地址

Golang环境安装
mkdir -p $HOME/softinstall/{golang,golangthirty}
tar  -zxvf go1.18.1.linux-amd64.tar.gz  -C  $HOME/softinstall/golang
配置Go语言国内代理

goproxy
https://goproxy.io/zh/

七牛云
https://goproxy.cn

阿里云
https://mirrors.aliyun.com/goproxy/
阿里云的镜像源,有点不好用。建议使用七牛云

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

取消国内代理

go env -u GOPROXY
设置Go的环境变量
# vim  /etc/profile
export GOROOT=$HOME/softinstall/golang # go软件安装路径
export GOPATH=$HOME/softinstall/golangthirty # go依赖包下载的路径
export GOBIN=$GOPATH/bin   # go build之后,执行命令的路径
export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct
# export GOPROXY="https://mirrors.aliyun.com/goproxy/,https://goproxy.cn"
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin # 添加为系统的环境变量

保存并退出。

使环境变量立即生效

source   /etc/profile

使用go env命令查看golang相关的环境变量

设置Go环境变量的含义
  • GOROOT是go的安装目录,go原生的工具在该目录下
  • GOPATH通常存放第三方依赖库
  • GOPROXY: 下载依赖库时走哪个镜像代理,可以公司内部自建镜像代理. 例如: export GOPRIVATE=git.yuan.com,github.com/myyuan
  • PATH下的二进制文件可以在任意目录下直接运行.
  • $GOPATH目录下创建三个子目录: src, bin, pkg
Go Modules依赖包查找机制
  • 下载第三方依赖包存储在$PATH/pkg/mod目录下.
  • go install生成的可执行文件存储在$GOPATH/bin下。
  • 依赖包的查找顺序:
    1. 工作目录
    2. $GOPATH/pkg/mod
    3. $GOROOT/src
第三方依赖库下载方法
go get -u  gonum.org/v1/gonum/stat
vscode编辑器环境配置
mkdir goprojects/learngo/week1
cd goprojects/learngo/week1
go mod  init  week1

踩过的坑,记录一下:
vscode提示 gopls的root workspace的问题处理:

下面shell这一部分建议不要进行操作。

# 如果执行以下命令,将导致自己写的包无法被导入和执行.
# go work init
# mkdir tools
# go work use tools  $GOPATH/pkg/mod/golang.org/x/tools/gopls@v0.8.3 

要进行下列操作:
需要在$GOPATH的src目录下创建一个目录和一个go文件

mkdir $GOPATH/src/hello/
cat <<-EOF > $GOPATH/src/hello/hello.go
package main

import (
	"fmt"
)

func main() {
    fmt.Println("hello world")
}

如果不解决这个问题,如果main.go引入了自定义的包, 运行main.go代码时,会报错:

main.go:5:2: package  week1/yuans  is not in  GOROOT($GOROOT/src/week1/yuan1)

默认就会从$GOROOT/src目录下去找。因为这个是自定义的包,肯定不可能在$GOROOT/src目录下找得到的。 这也是一个坑。

解决vscode的这个坑,浪费了我三个小时时间。建议新手使用golang集成的IDE。

至此, Golang基础环境已经安装完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DevSecOps云原生LYJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值