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. 一些重要的路径配置

shell 复制代码
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. 编写代码
go 复制代码
package main

import "fmt"

func main() {
	fmt.Println("Hello, world!")
}
  1. 运行 go run hello.go
相关推荐
用户298698530143 分钟前
如何在 C# 中用表格替换 Word 文档中的文本?
后端
山东小木26 分钟前
JBoltAI需求分析大师:基于SpringBoot的大模型智能需求文档生成解决方案
人工智能·spring boot·后端·需求分析·jboltai·javaai·aigs
Moonbit38 分钟前
MoonBit 再次走进清华:张宏波受邀参加「思源计划」与「程序设计训练课」
前端·后端·编程语言
RestCloud40 分钟前
一站式数据集成:iPaaS 如何让开发者和业务人员都满意?
前端·后端·架构
wanzhong23331 小时前
学习triton-第1课 向量加法
开发语言·python·高性能计算
三千道应用题1 小时前
C#语言入门详解(18)传值、输出、引用、数组、具名、可选参数、扩展方法
开发语言·c#
稻草猫.1 小时前
Java多线程(一)
java·后端·java-ee·idea
忧郁的蛋~1 小时前
使用.NET标准库实现多任务并行处理的详细过程
开发语言·c#·.net
dragon_perfect1 小时前
全流程基于Yolov8实现在Label-Studio实现半自动标注,已经把整个流程理清楚,把所有的坑解决。
开发语言·python·yolo·labelstudio
Java中文社群1 小时前
炸裂:SpringAI新版发布,终于支持断线重连了!
java·后端·ai编程