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

Golang起步篇(Windows、Linux、mac三种系统安装配置go环境以及IDE推荐以及入门语法详细释义)

Golang起步篇

  • Golang起步篇
    • 一. 安装Go语言开发环境
      • 1. Wondows下搭建Go开发环境
        • (1). 下载SDK工具包
        • (2). 解压下载的压缩包,放到特定的目录下,我一般放在`d:/programs`下(路径不能有中文或者特殊符号如空格等)
        • (3). 配置环境变量
          • 步骤1:先打开环境变量配置的界面
          • 步骤2:配置我们的环境变量
        • (4).测试环境变量是否配置成功
      • 2. Linux下搭建Go开发环境
        • (1). 下载SDK工具包
        • (2). 解压下载的压缩包,linux建议放在`/opt`目录下
        • (3). 配置环境变量
          • 步骤1:使用`root`权限来编辑`/etc/profile`文件
          • 步骤2:添加如下配置
          • 步骤3:刷新配置,运行如下命令
          • 步骤4:测试配置是否生效
      • 3. Mac下搭建GO开发环境
        • (1). 下载SDK工具包
        • (2). 解压下载的压缩包,一般放在用户目录下
        • (3). 配置环境变量
          • 步骤1:编辑家目录下的.zshrc文件
          • 步骤2:添加如下配置
          • 步骤3:刷新配置
          • 步骤4:测试配置是否生效
    • 二. 开发工具选择
      • 1. Visual Studio code + go插件(Microsoft产品,简称vscode)
      • 2. LiteIDE
      • 3. Goland
      • 4.IntelliJ + go插件
      • 5. Eclipse + Go插件
    • 三. 开发第一个Go程序,输出”hello World”
      • 1.建立开发目录
      • 2. 编写程序,输出hello,world
      • 3. 通过go build命令对该go文件进行编译,生成可执行的文件
      • 4. 运行编译生成的hello文件
      • 5. 通过go run命令可以直接运行hello.go程序(类似执行一个脚本文件的形式)
      • 6. Golang执行流程分析
      • 7. Go程序开发的注意事项




Golang起步篇

一. 安装Go语言开发环境

1. Wondows下搭建Go开发环境

(1). 下载SDK工具包

sdk下载地址为:https://go.dev/dl/

在这里插入图片描述

(2). 解压下载的压缩包,放到特定的目录下,我一般放在d:/programs下(路径不能有中文或者特殊符号如空格等)

在这里插入图片描述

(3). 配置环境变量

在这里插入图片描述

步骤1:先打开环境变量配置的界面

在这里插入图片描述

步骤2:配置我们的环境变量

在这里插入图片描述

在这里插入图片描述
注:Path这个环境变量不需要再创建,因为系统本身就有,直接在后面增加Go的bin:;%GOROOT%\bin

在这里插入图片描述

(4).测试环境变量是否配置成功

重新打开一次doc的终端,运行下面命令:

go version

在这里插入图片描述

2. Linux下搭建Go开发环境

(1). 下载SDK工具包

sdk下载地址为:https://go.dev/dl/

在这里插入图片描述

(2). 解压下载的压缩包,linux建议放在/opt目录下

在这里插入图片描述

(3). 配置环境变量
步骤1:使用root权限来编辑/etc/profile文件
vim /etc/profile
步骤2:添加如下配置
export GOROOT=/opt/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/goproject

在这里插入图片描述

步骤3:刷新配置,运行如下命令
source /etc/profile
步骤4:测试配置是否生效
go version

在这里插入图片描述

3. Mac下搭建GO开发环境

(1). 下载SDK工具包

sdk下载地址为:https://go.dev/dl/

在这里插入图片描述

(2). 解压下载的压缩包,一般放在用户目录下

在这里插入图片描述

(3). 配置环境变量
步骤1:编辑家目录下的.zshrc文件
vim  ~/.zshrc
步骤2:添加如下配置
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/goproject
步骤3:刷新配置
source  ~/.zshrc
步骤4:测试配置是否生效
go version

在这里插入图片描述

二. 开发工具选择

1. Visual Studio code + go插件(Microsoft产品,简称vscode)

一个运行于Mac OSWondowsLinux之上的开发工具,默认提供Go语言的语法高亮,安装Go语言插件,还可以支持智能提示,编译运行等功能。

在这里插入图片描述

2. LiteIDE

LiteIED是一款专门为GO语言开发的跨平台轻量级集成开发环境(IDE),是国人开发的,免费的。
在这里插入图片描述

3. Goland

Goland是一个Go语言的IDE,是JetBrains公司开发的,是收费的

在这里插入图片描述

4.IntelliJ + go插件

这是老牌的IDE了,是由JETBRAINS公司出品,其本身是支持Java的,要用作Go语言开发,就需要加上Go插件,其插件支持基本的开发功能,例如编译,调试,语法高亮,代码补全,以及对引入库的管理等等。

在这里插入图片描述

5. Eclipse + Go插件

作为开放式IDE的鼻祖,把GoEclipse插件注册进去,其完整的开放功能就马上配置好了

在这里插入图片描述

三. 开发第一个Go程序,输出”hello World”

1.建立开发目录

在这里插入图片描述

2. 编写程序,输出hello,world

package main
import "fmt"
​
func main(){fmt.Println("hello,world!")
}

在这里插入图片描述

(1). go文件的后缀是.go

(2). package main表示该 hello.go 文件所在的包是main,在go中,每个文件都必须归属一个包

(3). import "fmt"表示引入一个包,包名为fmt,引入该包后,就可以使用fmt包中的函数,比如fmt.Println

(4). func main(){}func是一个关键字,表示一个函数。main是函数名,是一个主函数,即我们程序的入口

(5). fmt.Println("hello") 表示调用fmt包的函数Println输出”hello,world”

3. 通过go build命令对该go文件进行编译,生成可执行的文件

go build hello.go

在这里插入图片描述

注:windows下编译之后生成的是hello.exe文件

4. 运行编译生成的hello文件

./hello

在这里插入图片描述

注:windows下是直接运行hello.exe即可

在这里插入图片描述

5. 通过go run命令可以直接运行hello.go程序(类似执行一个脚本文件的形式)

go run hello.go

在这里插入图片描述

6. Golang执行流程分析

(1).如果是对源码编译后,再执行,Go的执行流程如下图

在这里插入图片描述

(2).如果我们是对源码直接执行go run 源码,Go的执行流程如下图

在这里插入图片描述

两种执行流程的方式区别

  • 如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有go开发环境的机器上,仍然可以运行

  • 如果我们是直接go run 源代码,那么如果要在另外一个机器上这么运行,也需要go开发环境,否则无法执行

  • 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了很多

7. Go程序开发的注意事项

(1). Go源文以”.go”为扩展名。

(2). Go应用程序的执行入口是main()函数。

(3). Go语言严格区分大小写。

(4). Go方法由一条条语句构成,每个语句后不需要分号(Go语言会在每行后自动加分号)。

(5). Go编译器是一行行进行编译的,因为我们一行就写一条语句,不能把多条语句写在同一行,否则会报错。

在这里插入图片描述

(6). Go语言定义的变量或者import的包,如果没有使用到,代码不能通过编译

在这里插入图片描述







云哥技术yun3k

Golang起步篇

相关文章:

Golang起步篇(Windows、Linux、mac三种系统安装配置go环境以及IDE推荐以及入门语法详细释义)

Golang起步篇 Golang起步篇一. 安装Go语言开发环境1. Wondows下搭建Go开发环境(1). 下载SDK工具包(2). 解压下载的压缩包,放到特定的目录下,我一般放在d:/programs下(路径不能有中文或者特殊符号如空格等)(3). 配置环境变量步骤1:先打开环境变…...

Error message “error:0308010C:digital envelope routines::unsupported“

1.降级到 Node.js v16。 您可以从 Node.js 的 website 重新安装当前的 LTS 版本。 您也可以使用 nvm。对于 Windows,请使用 nvm-windows。 2.启用传统 OpenSSL 提供程序。 在类 Unix 系统(Linux、macOS、Git bash 等)上: exp…...

解决java在idea运行正常,但是打成jar包后中文乱码问题

目录 比如: 打包命令使用utf-8编码: 1.当在idea中编写的程序,运行一切正常.但是当被打成jar包时,执行的程序会中文乱码.产生问题的原因和解决方案是什么呢? 一.问题分析 分别使用idea和jar包形式打印出System中所有的jvm参数---代码如下: public static…...

数据结构-插入排序+希尔排序+选择排序

目录 1.插入排序 插入排序的时间复杂度: 2.希尔排序 希尔排序的时间复杂度: 3.选择排序 选择排序的时间复杂度: 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的…...

微信小程序数据传递的方式-页面数据的存取

我们在把数据显示到页面的时候,为了实现良好的互动,都希望在用户点击某个栏目后,获取这个栏目的捆绑数据,然后执行后续的操作。 例如,从数据库里取出对应的记录后,显示在页面上,是一条条的大横条…...

Flutter 应用启动从闪屏页短暂黑屏再到第一个页面

由于应用初始状态启动会有白屏现象,便使用 flutter_native_splash 2.3.5 插件生成了启动相关的配置,并且按照示例使用了 import package:flutter_native_splash/flutter_native_splash.dart;void main() {WidgetsBinding widgetsBinding WidgetsFlutte…...

Linux+qt:获取.so自身的路径(利用dladdr)

目录 1、QDir::currentPath() 2、QAppllication::appllicationDirPath() 3、获取.so自身的路径(利用dladdr) Qt中,也有相关的接口获取程序的相关路径的。 先了解下相关的接口: 1、QDir::currentPath() (1&#x…...

CSS特效014:模仿钟摆效果

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧,主要包含CSS布局,CSS特效,CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点,CSS特效主要是一些动画示例,CSS花边是描述了一些CSS…...

计算机毕业设计选题推荐-个人健康微信小程序/安卓APP-项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…...

【自然语言处理(NLP)实战】LSTM网络实现中文文本情感分析(手把手与教学超详细)

目录 引言: 1.所有文件展示: 1.中文停用词数据(hit_stopwords.txt)来源于: 2.其中data数据集为chinese_text_cnn-master.zip提取出的文件。点击链接进入github,点击Code、Download ZIP即可下载。 2.安装依赖库&am…...

迭代新品 | 第四代可燃气体监测仪,守护燃气管网安全快人一步

城市地下市政基础设施是城市有序运行的生命线,事关城市安全、健康运行和高质量发展。近年来,我国燃气事故多发、频发。2020、2021、2022 年分别发生燃气事故668、1140 起、802 起,造成92、106、66 人死亡,560、763、487 人受伤。尤…...

【教3妹学编程-java基础6】详解父子类变量、代码块、构造函数执行顺序

-----------------第二天------------------------ 本文先论述父子类变量、代码块、构造函数执行顺序的结论, 然后通过举例论证,接着再扩展,彻底搞懂静态代码块、动态代码块、构造函数、父子类、类加载机制等知识体系。 温故而知新&#xff…...

深度学习中文汉字识别 计算机竞赛

文章目录 0 前言1 数据集合2 网络构建3 模型训练4 模型性能评估5 文字预测6 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习中文汉字识别 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐&#xf…...

从零开始 通义千问大模型本地化到阿里云通义千问API调用

从零开始 通义千问大模型本地化到阿里云通义千问API调用 一、通义千问大模型介绍 何为“通义千问”? “通义千问大模型”是阿里云推出的一个超大规模的语言模型,具有强大的归纳和理解能力,可以处理各种自然语言处理任务,包括但…...

Linux(3):Linux 的文件权限与目录配置

把具有相同的账户放入到一个组里面,这个组就是这两个账户的 群组 。在访问资源(操作系统中计算机的资源)时,可以让这个组里面的所有用户都具有访问权限。 每个账号都可以有多个群组的支持。 在我们Liux 系统当中,默认的…...

Linux进程——exec族函数、exec族函数与fork函数的配合

exec族函数解析 作用 我们用fork函数创建新进程后,经常会在新进程中调用exec函数去执行另外一个程序。当进程调用exec函数时,该进程被完全替换为新程序。因为调用exec函数并不创建新进程,所以前后进程的ID并没有改变。 功能 在调用进程内部…...

客户端缓存技术

客户端缓存技术主要有以下几种: 内存缓存:客户端(如浏览器)会将请求到的资源(如HTML页面、图片文件等)存储在内存中,以便在再次访问相同资源时可以快速获取,减少向服务器的请求次数…...

Leetcode -2

Leetcode Leetcode -263.丑数Leetcode -268.丢失的数字 Leetcode -263.丑数 题目:丑数就是只包含质因数 2、3 和 5 的正整数。 给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。 示例…...

使用 DFS 轻松求解数独难题(C++ 的一个简单实现)

起因 都说懒惰是第一生产力,最近在玩数独游戏的时候,总会遇到拆解数独比较复杂的情况,就想着自己写个代码解题,解放双手。所以很快就写了一个简单的代码求解经典数独。拿来跑了几个最高难度的数独发现确实很爽!虽说是…...

【SQL server】 表结构的约束和维护

表结构的约束和维护 修改表结构 (1)添加列 (2)删除列 (3)修改列alter table 表名 add 新列名 数据类型给员工表添加一列邮箱 alter table People add PeopleMail varchar(200)删除列 alter table People drop column PeopleMain修改列 alter table 表名 alter column 列名 数据…...

使用Java实现数据的生产和消费

【Kafka】Java实现数据的生产和消费 Kafka介绍 Kafka 是由 LinkedIn 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。 Kafka术语 …...

OpenClaw多模态扩展:结合百川2-13B-4bits与OCR的图像信息处理流程

OpenClaw多模态扩展:结合百川2-13B-4bits与OCR的图像信息处理流程 1. 为什么需要多模态能力扩展? 上周我需要整理一批技术文档的截图,包含代码片段、错误日志和流程图。手动转录不仅耗时,还容易出错。这让我开始思考&#xff1a…...

7个步骤打造高效文件上传系统:Plupload零基础入门指南

7个步骤打造高效文件上传系统:Plupload零基础入门指南 【免费下载链接】plupload Plupload is JavaScript API for building file uploaders. It supports multiple file selection, file filtering, chunked upload, client side image downsizing and when necess…...

Granite TimeSeries FlowState R1实战:基于卷积神经网络(CNN)的时序特征提取进阶

Granite TimeSeries FlowState R1实战:基于卷积神经网络(CNN)的时序特征提取进阶 你是不是也遇到过这样的问题?面对一长串传感器读数、股票价格波动或者服务器监控数据,感觉信息量巨大,却不知道从哪里入手…...

Python爬虫赋能丹青识画:自动化构建艺术图像数据集

Python爬虫赋能丹青识画:自动化构建艺术图像数据集 每次看到那些能精准识别画作风格、作者甚至创作年代的AI应用,你是不是也好奇它们是怎么“学”出来的?答案很简单:喂给它海量的、高质量的“教材”——也就是艺术图像数据集。但…...

Blender 3MF插件全攻略:提升3D打印工作流效率的关键技术

Blender 3MF插件全攻略:提升3D打印工作流效率的关键技术 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 3MF格式作为3D打印领域的核心交换标准,正…...

OpCore-Simplify高效配置实战指南:智能适配黑苹果硬件的开源工具

OpCore-Simplify高效配置实战指南:智能适配黑苹果硬件的开源工具 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 当你面对繁杂的黑苹果EFI…...

深度解析ShardingCore:EF Core分库分表架构实战与性能优化指南

深度解析ShardingCore:EF Core分库分表架构实战与性能优化指南 【免费下载链接】sharding-core high performance lightweight solution for efcore sharding table and sharding database support read-write-separation .一款ef-core下高性能、轻量级针对分表分库…...

GME-Qwen2-VL-2B-Instruct部署详解:CUDA版本兼容性与FP16加载验证

GME-Qwen2-VL-2B-Instruct部署详解:CUDA版本兼容性与FP16加载验证 1. 项目概述 GME-Qwen2-VL-2B-Instruct是一个专为图文匹配度计算优化的多模态模型工具。它解决了原生调用中常见的打分不准问题,通过本地化部署实现了高效、安全的图文检索功能。 1.1…...

EfficientViT-GazeSAM完整部署指南:在RTX 4070上实现实时注视分割

EfficientViT-GazeSAM完整部署指南:在RTX 4070上实现实时注视分割 【免费下载链接】efficientvit EfficientViT is a new family of vision models for efficient high-resolution vision. 项目地址: https://gitcode.com/gh_mirrors/ef/efficientvit Effici…...