当前位置: 首页 > news >正文

【go语言 | 第1篇】Go环境安装+go语言特性

文章目录

  • go开发环境
    • 1. 下载安装包
    • 2. 配置环境变量
    • 3. GOPROXY
  • go语言特性
    • 1. go的优势
    • 2. go适合做什么
    • 3. go缺点
  • 编写一个go程序
    • 注:在VSCode中补全go代码

go开发环境

我这里是windows操作系统的环境安装,其他系统可以查看菜鸟教程:Go 语言环境安装

1. 下载安装包

安装包下载地址为:https://go.dev/dl/
在这里插入图片描述
双击.msi文件安装环境:
在这里插入图片描述
命令行输入go version出现下面版本,说明环境安装成功
在这里插入图片描述

2. 配置环境变量

  • GOROOT:go环境所在的目录。
  • GOPATH:go项目代码存放的位置。就是其他IDE的workspace。

在环境的系统变量中配置GOROOT和GOPATH,并且确保用户变量中的GOPATH路径与系统变量中的相同:
在这里插入图片描述
在系统变量的Path中也要加入go下的bin目录路径(一般会自动添加):
在这里插入图片描述
命令行输入go env查看是否配置成功:
在这里插入图片描述
在这里插入图片描述

3. GOPROXY

Go1.14版本之后,推荐使用go mod模式来管理依赖了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。
默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct,
由于国内访问不到 https://proxy.golang.org 所以我们需要换一个PROXY,这里推荐使用https://goproxy.io 或 https://goproxy.cn。
可以执行下面的命令修改GOPROXY:

#开启mod模式(项目管理需要用到)
go env -w GO111MODULE=on
#重新设置成七牛镜像源(推荐)
go env -w GOPROXY=https://goproxy.cn,direct
#查看环境变量
go env

在这里插入图片描述

IDE:选择使用 VSCode/Goland

go语言特性

1. go的优势

  • 部署简单:直接编译成机器码、不依赖其他库、直接运行即可部署
  • 静态语言类型:编译的时候检查出来隐藏的大多数问题

动态语言:没有编译器,只能在执行过程中逐条判断对错(Shell脚本,python,JavaScript)

  • 语言层面的并发:天生的基因支持,充分利用多核
  • 强大的标准库:runtime系统调度机制、高效的GC垃圾回收、丰富的标准库

runtime:go语言调度的平均分配
GC垃圾回收:go1.8之后,GC加入了三色标记和混合写屏障,效率高
标准库:文本、输入输出、同步机制、数字、日期和时间…

  • 简单易学:25个关键字、内嵌C语法支持、面向对象特征(封装、继承、多态)、跨平台

2. go适合做什么

  • 云计算基础设施:DockerKubernetes、七牛云存储等。
  • 基础后端软件
  • 微服务:go-kit

3. go缺点

  • 包管理,大部分包在github上
  • 所有Exception都用Error来处理

C语言全部使用Error来处理,C语言没有异常。
Java具有Exception

编写一个go程序

在 GOPATH 下新创建一个文件夹,在 VSCode 中编写一个 hello.go 程序:

package main// 程序使用到的包(函数)
import "fmt"func main() {fmt.Println("Hello go!")
}

在控制台执行:
在这里插入图片描述

  • 每个 go 程序由包构成,程序从main包开始。
  • 用 import 导入使用到的包,导入多个包:
import ("fmt""time"
)//也可以
import "fmt"
import "time"
  • golang 中的语句,可以加“;”也可以不加,通常不加
  • go语言的语法,定义函数的时候,‘{’ 必须和函数名在同一行,不能另起一行,否则会编译错误。

注:在VSCode中补全go代码

在终端下载go相关插件:

go env -w GOPROXY=https://goproxy.cn,direct
go env GOPROXY
go clean -modcache
go install golang.org/x/tools/gopls@latest
go install github.com/cweill/gotests/gotests@latest
go install github.com/fatih/gomodifytags@latest
go install github.com/josharian/impl@latest
go install github.com/haya14busa/goplay/cmd/goplay@latest
go install github.com/go-delve/delve/cmd/dlv@latest
go install honnef.co/go/tools/cmd/staticcheck@latest

执行后,在 GOPATH 的 bin 目录下,有插件生成:
在这里插入图片描述
重启 VSCode,即可自动补全代码以及代码提示。


文章转载自:

http://kk4KBjTk.qbjgw.cn
http://IGsNzPrn.qbjgw.cn
http://QCAHrC9j.qbjgw.cn
http://B9kK0dyU.qbjgw.cn
http://U8sdwogF.qbjgw.cn
http://x9JwZXww.qbjgw.cn
http://8IMHNclW.qbjgw.cn
http://uqeN9Ch6.qbjgw.cn
http://v2EA8YDU.qbjgw.cn
http://egqYNJl5.qbjgw.cn
http://do5HrKtV.qbjgw.cn
http://Jyl3ZnLm.qbjgw.cn
http://07bpIouT.qbjgw.cn
http://oxIY2C6z.qbjgw.cn
http://A5VvK59f.qbjgw.cn
http://5aDpmtAy.qbjgw.cn
http://c3DYEbys.qbjgw.cn
http://AAmV8NOR.qbjgw.cn
http://uVl8D4we.qbjgw.cn
http://n0ywjMxP.qbjgw.cn
http://4dzkQ9TF.qbjgw.cn
http://pl42V5Ri.qbjgw.cn
http://UME5kR2o.qbjgw.cn
http://391FUHS8.qbjgw.cn
http://UWTKK73X.qbjgw.cn
http://c4WcXrCM.qbjgw.cn
http://ElHG0sO6.qbjgw.cn
http://LpbvpMjm.qbjgw.cn
http://S0iur9hu.qbjgw.cn
http://dVGjfMz1.qbjgw.cn
http://www.dtcms.com/a/377653.html

相关文章:

  • 嵌入式面试题(4)
  • Python中的getattr/setattr和pybind11中的attr相關函數
  • Qt之Model/View架构
  • 龙虎榜——20250910
  • 嵌入式系统
  • Ngrok vs 飞网:内网穿透工具对比指南
  • 计算机毕设 java 高校家教平台 基于 SSM 框架的高校家教服务平台 Java+MySQL 的家教预约与课程管理系统
  • 招聘智能化浪潮:AI面试工具如何重塑招聘格局?
  • Java EE servlet与MySQL表单 工程实现增加查询数据
  • 上网管理行为-路由模式部署
  • Omni-UI:58同城鸿蒙ArkUI精心打造的UI组件库使用
  • 六自由度Stewart并联机器人simulink建模与模拟仿真
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘sympy’问题
  • 测试之道:从新手到专家实战(四)
  • 基于elementUI实现一个可编辑的表格(简洁版)
  • 智能美妆功能开发指南:直播美颜sdk的架构与算法解析
  • MySQL 浮点数、定点数与位类型:搞懂 3 类特殊数值的核心用法
  • 运动生理实验室解决方案 人体生理实验整体解决方案
  • Ping命令为何选择ICMP而非TCP/UDP?
  • 工业锅炉的“健康卫士”—状态监测与故障诊断
  • 大模型微调技术宝典:Transformer架构,从小白到专家
  • 同步框架与底层消费机制解决方案梳理
  • 计算机毕设 java 高校教材管理系统 基于 Java+SSM 的高校教材管控平台 Java+MySQL 的教材全流程管理系统
  • 用分层架构打造单体应用
  • TCP 拥塞控制设计空间课程要点总结
  • 工业网络融合:DEVICENET转PROFINET网关在汽车总装车间的应用
  • AI当调色总监用,合成图一秒融入,甲方看了都说绝
  • 深入浅出CRC校验:从数学原理到单周期硬件实现 (1) 初始CRC校验
  • 基于esp32c3 rust embassy 的墨水屏程序
  • 实战:用 Python 搭建 MCP 服务 —— 模型上下文协议(Model Context Protocol)应用指南