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起步篇

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于STM32的外部中断(EXTI)在嵌入式系统中的应用

外部中断(External Interrupt,EXTI)是STM32嵌入式系统中常见且重要的功能之一。它允许外部事件(例如按键按下、传感器触发等)通过适当的引脚触发中断,从而应用于各种嵌入式系统中。在STM32微控制器中&#…

Vulkan渲染引擎开发教程 一、开发环境搭建

一 安装 Vulkan SDK Vulkan SDK 就是我们要搞的图形接口 首先到官网下载SDK并安装 https://vulkan.lunarg.com/sdk/home 二 安装 GLFW 窗口库 GLFW是个跨平台的小型窗口库,也就是显示窗口,图形的载体 去主页下载并安装,https://www.glfw.…

搭建内部知识库,解决企业内部琐碎信息问题

企业内部面临着大量琐碎的信息,这些信息可能分散在各个部门、员工之间,导致查找和共享变得困难。这种情况下,搭建一个内部知识库可以解决这一问题。通过内部知识库,企业可以将琐碎的信息整理、分类,并提供一个集中存储…

Learning Perception Module

参考文章:自动驾驶开发者说|框架|如何单独运行apollo相机感知模块? - 知乎引言文章主要尝试了apollo框架下,视觉感知模块的单独运行,并利用离线的数据包进行检测实时展示结果。过程相对来说比较顺利。在加上已经用VScode搭建的单步…

nodejs微信小程序-慢性胃炎健康管理系统的设计与实现-安卓-python-PHP-计算机毕业设计

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

Gem5模拟器学习之旅——翻译自官网

文章目录 安装并使用gem5 模拟器支持的操作系统和环境依赖在 Ubuntu 22.04 启动(gem5 > v21.1)Docker获取代码用 SCons 构建用法首次构建 gem5gem5 二进制类型调试opt快速 常见错误错误的 gcc 版本Python 位于非默认位置未安装 M4 宏处理器Protobuf 3.12.3 问题 安装并使用g…

redis安装(Windows和linux)

如何实现Redis安装与使用的详细教程 Redis 简介 Redis是一个使用C语言编写的开源、高性能、非关系型的键值对存储数据库。它支持多种数据结构,包括字符串、列表、集合、有序集合、哈希表等。Redis的内存操作能力极强,其读写性能非常优秀,且…

gRPC 四模式之 双向流RPC模式

双向流RPC模式 在双向流 RPC 模式中,客户端以消息流的形式发送请求到服务器端,服务器端也以消息流的形式进行响应。调用必须由客户端发起,但在此之后,通信完全基于 gRPC 客户端和服务器端的应用程序逻辑。 为什么有了双向流模式…

Android resource/drawable转换成Uri,Kotlin

Android resource/drawable转换成Uri,Kotlin private fun convertResource2Uri(resId: Int): Uri {return Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE "://" resources.getResourcePackageName(resId) / resources.getResourceTypeName(resI…

开源WIFI继电器之方案介绍

一、实物 1、外观 2、电路板 二、功能说明 输出一路继电器常开信号,最大负载电流10A输入一路开关量检测联网方式2.4G Wi-Fi通信协议MQTT配网方式AIrkiss,SmartConfig设备管理本地Web后台管理,可配置MQTT参数供电AC220V其它一个功能按键&…

进程概述

文章目录 计算机算机组成因特尔CPU型号摩尔定律衡量CPU的指标指令(Instruction)操作系统(Operating System)虚拟地址空间(Virtual Address Space)进程(Process/task)进程管理(PCB - 进程控制块)进程控制块(…

某60区块链安全之重入漏洞实战记录

区块链安全 文章目录 区块链安全重入漏洞实战实验目的实验环境实验工具实验原理实验内容 重入漏洞实战 实验目的 学会使用python3的web3模块 学会以太坊重入漏洞分析及利用 实验环境 Ubuntu18.04操作机 实验工具 python3 实验原理 以太坊智能合约的特点之一是能够调用和…

rollout

构建 测试 代码扫描 打包 打镜像 推送镜像 部署应用 Rollout 是 Kubernetes 中用于管理部署应用的资源对象。它通过控制多个 ReplicaSets 对象的创建、缩放和更新,以实现无宕机升级和回滚应用程序版本的能力。 一般来说,在 Kubernetes 中,我…

选硬币该用动态规划

选硬币&#xff1a; 现有面值分别为1角1分&#xff0c;5分&#xff0c;1分的硬币&#xff0c;请给出找1角5分钱的最佳方案。 #include <iostream> #include <vector>std::vector<int> findChange(int amount) {std::vector<int> coins {11, 5, 1}; /…

C_12练习题

一、单项选择题(本大题共20小题,每小题2分&#xff0c;共40分。在每小题给出的四个备选项中&#xff0c;选出一个正确的答案&#xff0c;并将所选项前的字母填写在答题纸的相应位置上。) C 风格的注释&#xff0c;也称块注释或多行注释&#xff0c;以&#xff08;&#xff09;…

qt-C++笔记之treeWidget初次使用

qt-C笔记之treeWidget初次使用 code review! 文章目录 qt-C笔记之treeWidget初次使用1.运行2.文件结构3.main.cpp4.widget.h5.widget.cpp6.widget.ui7.main.qrc8.qt_widget_test.pro9.options.png 1.运行 2.文件结构 3.main.cpp 代码 #include "widget.h"#include…

神经网络反向传播的数学原理

如果能二秒内在脑袋里解出下面的问题&#xff0c;本文便结束了。 已知&#xff1a;&#xff0c;其中。 求&#xff1a;。 到这里&#xff0c;请耐心看完下面的公式推导&#xff0c;无需长久心里建设。 首先&#xff0c;反向传播的数学原理是“求导的链式法则” : 设f和g为x…

利用 Pandoc + ChatGPT 优雅地润色论文,并保持 Word 公式格式:Pandoc将Word和LaTeX文件互相转化

论文润色完美解决方案&#xff1a;Pandoc 与 ChatGPT 的强强联合 写在最前面其他说明 一、通过 Pandoc 将 Word 转换为 LaTeX 的完整指南步骤 1: 安装 PandocWindows:macOS:Linux: 步骤 2: 准备 Word 文档步骤 3: 转换文档步骤 4: 检查并调整输出步骤 5: 编译 LaTeX 文档总结 二…

分类预测 | Matlab实现基于SDAE堆叠去噪自编码器的数据分类预测

分类预测 | Matlab实现基于SDAE堆叠去噪自编码器的数据分类预测 目录 分类预测 | Matlab实现基于SDAE堆叠去噪自编码器的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现基于SDAE堆叠去噪自编码器的数据分类预测&#xff08;完整源码和数据) 2.多…

机器学习第9天:决策树分类

文章目录 机器学习专栏 介绍 基本思想 使用代码 深度探索 优点 估计概率 训练算法 CART成本函数 实例数与不纯度 正则化 在鸢尾花数据集上训练决策树 机器学习专栏 机器学习_Nowl的博客-CSDN博客 介绍 作用&#xff1a;分类 原理&#xff1a;构建一个二叉树&#…