【Go】windows下的Go安装与配置,并运行第一个Go程序

news2025/4/15 15:51:27

【Go】windows下的Go安装与配置,并运行第一个Go程序

安装环境:windows10 64位
安装版本:go1.16 windows/amd64

一、安装配置步骤
1.到官方网址下载安装包
https://golang.google.cn/dl/

在这里插入图片描述

默认情况下 .msi 文件会安装在 c:\Go 目录下。可自行配置安装位置

2.配置环境变量
环境变量PATH作用:Windows和DOS操作系统中的path环境变量,当系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找

  1. 分别添加GOPATH与GOROOT两条系统变量

在这里插入图片描述

$GOROOT: 表示 Go 在你的电脑上的安装位置

$GOPATH: Go语言工作目录。默认采用和 $GOROOT 一样的值,但从 Go 1.1 版本开始,你必须修改为其它路径。

(Go1.1.1引入了moudle模块化概念,在此之前规定Go项目代码需放入$GOPATH的src目录下。之后的版本推荐启用Go mod模式构建项目,可在磁盘的任何位置新建一个项目)

  1. 在PATH中添加对应环境变量
    %GOROOT%\bin
    在这里插入图片描述
    3.配置Go的环境(适用于Go version >= 1.13)
    在命令行输入:go env 可以查看关于Go的所有环境参数

在这里插入图片描述

常情况下需要配置的环境参数只有两个:GOPROXY和GO111MODULE

GO111MODULE:控制是否开启Go Modules模式(推荐开启)

GOPROXY:GOPROXY控制Go Modules下载依赖包的来源(公共GOPROXY是一个集中式的存储库,全球各地的Golang开发者都可以使用。它缓存了大量开源的Go模块)

对于GO111MODULE的详细说明,可以点击查看文章:Go 模块解惑:到处都是 GO111MODULE ,这到底什么?

在命令行输入如下两句命令:

go env -w GO111MODULE=on
 
go env -w GOPROXY=https://goproxy.io,direct
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct       // 可选,阿里云镜像

二、运行第一个Go程序
1.使用系统编辑器方式

  1. 在任意工作路径下新建项目文件夹demo

  2. 用命令行工具进入demo文件夹路径

  3. 在命令行中输入初始化Go项目命令

go mod init demo
其中demo为项目名,运行命令后demo路径下会生成一个go.mod文件,用于记录项目信息

  1. 新建src\main文件夹,在main文件夹下新建main.go文件
    在这里插入图片描述
    打开main.go,编辑并保存内容如下:
package main    // 包名,同一个包的多个go文件组成一个程序单元。路径名需要与包名相同
 
import "fmt"    // 引入依赖
 
func main(){    // 每一个go项目都必须有一个main方法作为程序入口
	fmt.Printf("Hello World")
}

5)在命令行中进入main路径,并输入编译并运行代码:

go run main.go
可以看到如下结果:

在这里插入图片描述
2.使用集成开发环境方式
我使用JetBrains公司的收费软件GoLand作为Go学习开发环境

官网下载地址:https://www.jetbrains.com/go/

GoLand支持安装中文插件

  1. 新建一个Go模块项目。注意是Go模块项目,不是Go项目 (go1.11后使用官方推荐的模块化编程方案)

GOROOT选择Go的安装位置
在这里插入图片描述

  1. 在项目路径下新建src\main文件夹与main.go文件,并输入代码
    在这里插入图片描述
package main    // 包名,同一个包的多个go文件组成一个程序单元。路径名需要与包名相同
 
import "fmt"    // 引入依赖
 
func main(){    // 每一个go项目都必须有一个main方法作为程序入口
	fmt.Printf("Hello World")
}
  1. 配置构建程序,运行种类选择目录
    4) 运行main方法

  2. 运行main方法
    在这里插入图片描述

三、常见问题
1.每一个可执行项目,必须有一个或多个 main 包
如果项目中没有 main 包,那么在编译项目时,不会出现错误,如果在项目中使用 go run 来编译并启动项目,则会报错,错误信息是:
go run: cannot run non-main package
2.一个 main 包中,有且只能有一个 main 函数。如果不存在main函数,则会报未声明main函数的错误:
runtime.main_main·f: function main is undeclared in the main package
3.之前的Go环境配置中配置了:GO111MODULE=on 即开启模块化构建
如果没有使用模块化模式构建项目,则会报错:
go: cannot find main module; see ‘go help modules’

有关Go模块化编程的具体描述:Go语言模块化编程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2334256.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3腾讯云直播 前端拉流(前端页面展示直播)

1、引入文件&#xff0c;在index.html <link href"https://tcsdk.com/player/tcplayer/release/v5.3.2/tcplayer.min.css" rel"stylesheet" /><!--播放器脚本文件--><script src"https://tcsdk.com/player/tcplayer/release/v5.3.2/t…

【MYSQL从入门到精通】数据库基础操作、数据类型

目录 一些基础操作语句 创建库名 选择要操作的数据库 删除数据库 磁盘中删除文件的原理 数据库安全的各种措置 查看MYSQL的帮助 数值类型 字符串类型 日期类型 一些基础操作语句 1.使用客户端工具连接数据库服务器&#xff1a;mysql -uroot -p 2.查看所有数据库&am…

论文阅读笔记——Multi-Token Attention

MTA 论文 在 Transformer 中计算注意力权重时&#xff0c;仅依赖单个 Q 和 K 的相似度&#xff0c;无法有效捕捉多标记组合信息。&#xff08;对于 A、B 两个词&#xff0c;单标记注意力需要分别计算两个词的注意力分数&#xff0c;再通过后处理定位共同出现的位置或通过多层隐…

vue3 antdesign table表格特定单元格背景变色

效果&#xff1a; <a-table :columns"columnsAll" :data-source"tableAllData"bordered size"middle" :scroll"{ x: 100,y: 600 }" :pagination"false"style"margin: 0 10px 10px 10px;" ><template #…

【C语言】--- 编译和链接

编译和链接 1. 翻译环境和运行环境2. 翻译环境2.1 预处理2.2 编译2.2.1 词法分析2.2.2 语法分析2.2.3 语义分析 2.3 汇编2.4 链接 3. 运行环境 1. 翻译环境和运行环境 计算机只能运行二进制指令&#xff0c;所以我们的.c的文本程序需要先翻译为二进制程序才能被计算机执行。在…

深入解析Python爬虫技术:从基础到实战的功能工具开发指南

一、引言:Python 爬虫技术的核心价值 在数据驱动的时代,网络爬虫作为获取公开数据的重要工具,正发挥着越来越关键的作用。Python 凭借其简洁的语法、丰富的生态工具以及强大的扩展性,成为爬虫开发的首选语言。根据 Stack Overflow 2024 年开发者调查,68% 的专业爬虫开发者…

前端 Vue: Cannot find module XX or its corresponding type declarations.

记一个常见错误&#xff0c;每次创建完新的vuetsvite项目&#xff0c;在配置路由的时候总会找不到vue文件&#xff0c;我用的是Webstorm&#xff0c;在设置里面修改以下设置&#xff0c;即可消除警告。

数字内容体验案例解析与行业应用

数字内容案例深度解析 在零售行业头部品牌的实践中&#xff0c;数字内容体验的革新直接推动了用户行为模式的转变。某国际美妆集团通过搭建智能内容中台&#xff0c;将产品信息库与消费者行为数据实时对接&#xff0c;实现不同渠道的动态内容生成。其电商平台首页的交互式AR试…

HBuilderX中uni-app打包Android(apk)全流程超详细打包

一、Android生成打包证书 1、Android平台签名证书(.keystore)生成指南_android 签名生成-CSDN博客&#xff08;如果不上架应用商店可以跳过&#xff0c;可以使用云端证书&#xff09; 二、打开manifest.json配置基础设置 三、配置安卓应用图标 四、配置安卓启动页图片 五、…

多模态大模型重塑自动驾驶:技术融合与实践路径全解析

目录 1、 引言&#xff1a;AI与自动驾驶的革命性融合 2、五大领先多模态模型解析 2.1 Qwen2.5-Omni&#xff1a;全模态集大成者 2.2. LLaVA&#xff1a;视觉语言理解专家 2.3. Qwen2-VL&#xff1a;长视频理解能手 2.4. X-InstructBLIP&#xff1a;跨模态理解框架 2.5. …

vue2 el-element中el-select选中值,数据已经改变但选择框中不显示值,需要其他输入框输入值才显示这个选择框才会显示刚才选中的值。

项目场景&#xff1a; <el-table-column label"税率" prop"TaxRate" width"180" align"center" show-overflow-tooltip><template slot-scope"{row, $index}"><el-form-item :prop"InquiryItemList. …

OFDM CP 对解码影响

OFDM符号间会存在ISI&#xff0c;为了解决该问题在符号间插入了循环前缀&#xff0c;可以说这个发明是OFDM能够实用的关键&#xff0c;在多径信道中CP可以有效的解决符号间干扰。3GPP中对于不同SCS 定义了不同的CP长度&#xff1a; 5G Cyclic Prefix (CP) Design -5G Physical …

Vue3.5 企业级管理系统实战(十四):动态主题切换

动态主题切换是针对用户体验的常见的功能之一&#xff0c;我们可以自己实现如暗黑模式、明亮模式的切换&#xff0c;也可以利用 Element Plus 默认支持的强大动态主题方案实现。这里我们探讨的是后者通过 CSS 变量设置的方案。 1 组件准备 1.1 修改 Navbar 组件 在 src/layo…

解决Ubuntu20.04安装ROS2的问题(操作记录)

一、ROS 系统安装版本选择 每版的Ubuntu系统版本都有与之对应ROS版本&#xff0c;每一版ROS都有其对应版本的Ubuntu版本&#xff0c;切记不可随便装。ROS 和Ubuntu之间的版本对应关系如下&#xff1a;&#xff08; 可以从这个网站查看ROS2的各个发行版本的介绍信息。&#xff…

C# 设置Excel中文本的对齐方式、换行、和旋转

在 Excel 中&#xff0c;对齐、换行和旋转是用于设置单元格内容显示方式的功能。合理的设置这些文本选项可以帮助用户更好地组织和展示 Excel 表格中的数据&#xff0c;使表格更加清晰、易读&#xff0c;提高数据的可视化效果。本文将介绍如何在.NET 程序中通过C# 设置Excel单元…

RPA VS AI Agent

图片来源网络 RPA&#xff08;机器人流程自动化&#xff09;和AI Agent&#xff08;人工智能代理&#xff09;在自动化和智能化领域各自扮演着重要角色&#xff0c;但它们之间存在显著的区别。以下是对两者区别的详细分析&#xff1a; 一、定义与核心功能 RPA&#xff08;机…

uniapp大文件分包

1. 在pages.json中配置 "subPackages":[{"root":pagesUser,"pages":[{"path":mine/xxx,"style":xxx },{"path":mine/xxx,"style":xxx}]},{"root":pagesIndex,"pages":[{"p…

Spark-core编程

sortByKey 函数说明 join 函数说明 leftOuterJoin 函数说明 cogroup 函数说明 RDD行动算子&#xff1a; 行动算子就是会触发action的算子&#xff0c;触发action的含义就是真正的计算数据。 reduce 函数说明 collect 函数说明 foreach 函数说明 count 函数说明 first …

2025年的Android NDK 快速开发入门

十年前写过一篇介绍NDK开发的文章《Android实战技巧之二十三&#xff1a;Android Studio的NDK开发》&#xff0c;今天看来已经发生了很多变化&#xff0c;NDK开发变得更加容易了。下面就写一篇当下NDK开发快速入门。 **原生开发套件 (NDK) **是一套工具&#xff0c;使开发者能…

基于springboot的“嗨玩旅游网站”的设计与实现(源码+数据库+文档+PPT)

基于springboot的“嗨玩旅游网站”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;springboot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 局部E-R图 系统首页界面 系统注册…