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

go入门 - day1 - 环境搭建

0. 介绍

  1. go语言可以做什么?
    a. 区块链
    b. 分布式/微服务/云原生
    c. 服务器/游戏软件
  2. go的优势
    a. 代码量比C++和Java少
    b. 编译速度比Java或者C++快上5到6倍,比Scale块10被
    c. 性能比C++慢20%,但是比Java、python等快上5到10倍
    d. 内存管理和C++媲美,是Java的1/5左右
    e. 唯一的缺点就是go语言的文件体积比较大,因为每一个文件都包含了runtime

1. 安装

  1. windows直接下载,然后傻瓜式的安装。下载地址: https://studygolang.com/dl

2. 环境变量设置

  1. 设置系统环境变量,设置GOPATHGOROOT两个系统环境变量。

    • GOPATH: go的安装路径
    • GOROOT:go的依赖包($GOPATH/pkg),项目发布的包($GOPATH/bin),缓存($GOPATH/cache)所在的路径
      在这里插入图片描述
  2. 相关命令:
    (1) 设置环境变量go env -w。或者直接在系统环境变量中设置就行了
    (2) 查看环境变量 go env ,如果发现上面的路径不是自己想要的,可以通过go env -w设置,这个其实就是在
    C:\Users\curUser\AppData\Roaming\go这个路径下创建一个env文件,里面会写上环境变量
    在这里插入图片描述

  3. 一些重要的路径配置

set GOROOT=F:\software\go  # go的安装目录
set GOPATH=F:\\data\\go	   # go的依赖目录,在1.16之后,已经由module管理了,类似于maven仓库
set GOPROXY=https://proxy.golang.org,direct 			# 下载依赖的代理,类似于maven的镜像
set GOCACHE=C:\Users\Zekun Fu\AppData\Local\go-build    # go缓存的路径
set GOMODCACHE=F:\\data\\go\\pkg\\mod			        # go模块的缓存路径,一般在$GOPATH下创建的文件夹

3. IDE配置

如果使用vscode进行搭建的,看下面的文章就行了

  1. vscode搭建环境教程:https://learn.microsoft.com/zh-cn/azure/developer/go/configure-visual-studio-code,主要两步
    (1)安装go插件
    在这里插入图片描述

(2)ctrl + shift + P->输入go tool->选择全部->安装go调试工具 ,网速不好,可能需要开代理
在这里插入图片描述
在这里插入图片描述

  1. idea配置也比较简单,主要是两步
    (1)安装go插件

在这里插入图片描述

(2)配置项目的GOPATHGOROOTGOPROXY等信息,另外重点是将下面的内容选上,也就是启动11的模块化管理,这样项目就不用定死在$GOPATH/src目录下,可以放在任意位置,只要有go.mod就可以进行项目的生命周期管理了

在这里插入图片描述

4. hello world

  1. go mod init demo
  2. 创建文件 hello.go
  3. 编写代码
package mainimport "fmt"func main() {fmt.Println("Hello, world!")
}
  1. 运行 go run hello.go
    在这里插入图片描述
http://www.dtcms.com/a/270197.html

相关文章:

  • Rust 中字符串类型区别解析
  • 10倍处理效率提升!阿里云大数据AI平台发布智能驾驶数据预处理解决方案
  • Tomcat:启用https(Windows)
  • AR/VR 显示画质失真?OAS百叶窗波导案例破难题
  • Spring Cloud 企业项目技术选型
  • Fiddler-关于抓取Android手机包,安装证书后页面加载失败,提示当前证书不可信存在安全风险的问题
  • 力扣-287.寻找重复数
  • Flutter基础(前端教程①-容器和控件位置)
  • 7月5号和6号复习和预习(C++)
  • 初识mysql(一)
  • 论文略读:UniPELT: A Unified Framework for Parameter-Efficient Language Model Tuning
  • 无人机报警器探测模块技术解析
  • HDLBits刷题笔记和一些拓展知识(十一)
  • 中文编程开发工具构件系列介绍——数值比较构件
  • 视频网站弹幕系统简易实现
  • Python语言+pytest框架+allure报告+log日志+yaml文件+mysql断言实现接口自动化框架
  • Android Handler机制与底层原理详解
  • RHA《Unity兼容AndroidStudio打Apk包》
  • 什么是2.5G交换机?
  • 【如何下载网页中的视频】
  • 【HarmonyOS】鸿蒙端云一体化开发入门详解 (一)
  • 零基础 Qt 6 在线安装教程
  • vue前置知识-end
  • 呼叫系统对接智能体能解决哪些问题?
  • exFAT文件系统mp4素材文件变0字节的恢复方法
  • Spring中过滤器和拦截器的区别及具体实现
  • ROS平台上使用C++实现A*算法
  • 3423. 循环数组中相邻元素的最大差值 — day97
  • MySQL 8.0 OCP 1Z0-908 题目解析(23)
  • 服务端渲染