【go从入门到精通】go环境安装和第一个经典程序

go下载和环境变量配置

下载地址

Go官网下载地址:https://golang.org/dl/All releases - The Go Programming Languagehttps://golang.org/dl/ 

然后根据自己的系统环境来选择不同的安装包下载,下面我分别针对不同环境进行说明(大家可以根据自己的需要来选择安装不同的版本,这里我用的是go1.18.3版本,当然你们可以选择最新版本):

Windows安装和GOPATH配置

1.点击下载的msi安装包:

设置安装路径为:C:\Program Files\Go\bin

2.配置gopath 

GOPATH是一个环境变量,用来表明你写的go项目的存放路径

GOPATH路径最好只设置一个,所有的项目代码都放到GOPATHsrc目录下。

Linux和Mac平台就参照上面配置环境变量的方式将自己的工作目录添加到环境变量中即可。 Windows平台按下面的步骤将(你的安装目录,例如:C:\Program Files\Go\bin)添加到环境变量:

 我的电脑->属性->高级系统设置->环境变量

 接着我们查看PC的用户变量或者下面的系统变量查看是否有GOPATH变量名(这个配置的是go工程的路径),如果没有则新建一个:

我们看下这个目录下都有哪些文件:

同时在path里面添加go的安装目录(我的是C:\Program Files\Go\bin

3.检查go版本和环境变量:

Linux下安装和GOPATH配置

1.进入/usr/local目录进行下载安装包

cd /usr/local
wget https://go.dev/dl/go1.18.3.linux-amd64.tar.gz

2.下载成功后,解压压缩包:

tar -zxvf go1.18.3.linux-amd64.tar.gz

3.建立Go的工作空间

Golang 工作空间 :编译工具对源码目录有严格要求,每个工作空间 (workspace) 必须由 bin、pkg、src 三个目录组成。

Go tool 被设计成用来开源公共仓库中的代码,尽管或许你不需要发布你的代码, 但是环境的设置还是一样的。

Go的源代码必须存放在 workspace中。 workspace 是一个目录(directory hierachy),在这个目录下有三个子目录

  • src 包含 Go 源代码文件, 源代码文件组织成 packages (one package per directory)
  • pkg 包含 package objects (二进制的包)
  • bin 包含 可执行的命令 command(可执行的二进制文件)

go tool 编译(build) 源代码文件(source packages),并且将 resulting binaries 安装在 pkg 和 bin 目录下面。

src 目录下面包含多个 版本控制的仓库, (比如 Git 或者 Mercurial) 用来 跟踪一个或者多个 source package的开发进度。

这里,我们在/home目录下, 建立一个名为goworkspace的文件夹,
然后再建立三个子文件夹(子文件夹名必须为src、pkg、bin)。

4.添加PATH环境变量

vi /etc/profile

加入下面这三行:

export GOROOT=/usr/local/go  ##go安装目录          
export PATH=$GOROOT/bin:$PATH
export GOPATH=/home/goworkspace  ##go项目目录

保存后,执行以下命令,使环境变量立即生效:

source /etc/profile

至此,Go语言的环境已经安装完毕。

5.验证go环境

[root@izm5ee12oyxxwqdlq5bj8wz data]# go version
go version go1.18.3 linux/amd64

6.查看Go语言的环境信息

go env

Mac下安装

mac上直接下载 https://go.dev/dl/go1.18.3.darwin-amd64.pkg 然后安装即可,配置环境变量的方式和方法和Linux类似

vim  ./bash_profile

配置参数也参考linux的参数,最后 source ./bash_profile

 

 

go编辑器使用

         你可以参考我之前的这篇文章 骨灰级程序的电脑上都安装过哪些编辑器?,在学习期间,你可以使用 vscode下载地址icon-default.png?t=N7T8https://code.visualstudio.com/Download,  以后我们的开发环境就使用vscode来进行编码了,这个是跨平台的,所以不管你是windows,linux还是mac平台,你都可以使用生成的工程来打开你的项目,这里就不费口舌来讲vscode的功能了,总之一个字”好用“。

安装go插件

启动vscode选择插件->搜go, 选择下面的图中的插件,点击安装即可(因为我已经安装过了,所以这里的提示如此)

     

安装go开发工具包

vscode里会为我们提供代码提示、代码自动补全等功能,这将提高我们的开发效率:ctrl+shift+P:

在输入框内输入go install-》选择Go:Install/Update Tools

然后选择全选:

git安装

         因为golang是通过git来管理远程包的,所以我们首先要安装git,下载地址:Git - Downloadsicon-default.png?t=N7T8http://www.git-scm.com/download/   git安装比较简单,这里不再费文字了,你可以参考网络上其他文章

第一个经典程序

假设我在下面这个目录创建一个hello的工程

(1)打开vscode,

选择目录:E:\project\go\hello

(2)在new创建一个main.go文件:

package main

import "fmt"
func main(){
    fmt.Println("hello world")
}

 

(3)在终端下执行编译

        如果你的vscode没有看到终端,你可以在最上面的菜单栏里找下Terminal,然后New Terminal就可以发现。

        终端下执行 go build .\main.go

   go编译器会在当前目录下查找你要编译的文件main.go,编译得到的可执行文件会保存在执行编译命令的当前目录下。

(4)在终端直接执行该hello.exe文件:

 结语:

           恭喜你,你已经具备了开发go的条件了,接下来我将分享

go基础:语法,函数,方法,面向对象,网络,并发编程,常用标准库,
框架: beego,gin,微服务
插件:文件读写,pprof性能调优,加解密,token,流控,数据库
实践项目:聊天室,游戏服务器
笔试面试题分析

其他。。。

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

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

相关文章

Rabbitmq消息丢失-生产者消息丢失(一)

说明:消息生产者在将数据发送到Mq的时候,可能由于网络等原因造成数据投递失败。 消息丢失大致分三种:这里说的是生产者消息丢失! 分析原因: 1.有没有一种可能,我刚发送消息,消息还没有到交换…

超全Chat GPT论文修改指令

文献综述指令润色修改指令论文选题指令论文大指令研究理论指令论文致谢指令参考文献指令论文润色整体逻辑论文整体优化提问指令 1.文献综述指令 请你帮我写一份关于(研究主题)的文献综述。我的论文选题方向是 XXXX ,我已经找到了…

JS逆向进阶篇【去哪儿旅行登录】【下篇-逆向Bella参数JS加密逻辑Python生成】

目录: 每篇前言:引子——本篇目的1、 代码混淆和还原(1)单独替换:(2)整个js文件替换: 2、算法入口分析3、 深入分析(0)整体分析:(1&am…

前后端分离项目Docker部署指南(上)

目录 前言 一.搭建局域网 1.搭建net-ry局域网,用于部署若依项目 2.注意点 二.安装redis 创建目录 将容器进行挂载 ​编辑 测试是否安装成功 ​编辑 三. 安装MySQL 创建文件夹 上传配置文件并且修改 .启动MySQL容器服务 充许远程连接 四.部署后端 使用…

linux 交叉编译curl(+openssl)

一、交叉编译openssl 参考博客:点击跳转 二、交叉编译curl 1、源码下载 地址:点击跳转 2、配置 CPPFLAGS"-I/home/gui/gui/openssl/build_arm/include" LDFLAGS"-L/home/gui/gui/openssl/build_arm/lib" LIBS"-ldl" \ …

Android之Handler原理解析与问题分享

一、Handler运行原理剖析 1.关系剖析图 如果把整个Handler交互看做一个工厂,Thread就是动力MessageQueue是履带Looper是转轴Loooper的loop方法就是开关,当调用loop方法时整个工厂开始循环工作,处理来自send和post提交到MessageQueue的消息&a…

使用Javassist 在android运行时生成类

序言 最近在写框架,有一个需求就是动态的生成一个类,然后查阅了相关文献,发现在android中动态生成一个类还挺麻烦。因次把一些内容分享出来,帮助大家少走弯路。 方案一 DexMaker DexMaker 是一个针对 Android 平台的库&#xf…

游戏引擎用什么语言开发上层应用

现在主流的游戏引擎包括: 1、Unity3D,C#语言,优点在于支持几乎所有平台 丹麦创立的一家公司,现已被微软收购。在中国市场占有率最高,也是社群很强大,一般解决方案也能在网上找到,教程丰富。物理…

.md转pdf

1、使用vscode安装Markdown PDF Markdown PDF 打开预览转pdf,同目录下自动生成pdf文件

稀碎从零算法笔记Day5-LeetCode:多数元素

题型:数组、计数、排序、STL函数、查找众数 链接:169. 多数元素 - 力扣(LeetCode) 来源:LeetCode 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 题目描述 给定一个大小为 n …

30分钟做200多张报表的金蝶云星空BI方案来了

曾经一张报表都要做好久,但现在,200多张的BI数据分析报表只需30分钟就能完成!BI智能数据分析的高效性在这一刻具象化了。奥威-金蝶云星空BI方案,一套注册、下载、执行,即见效果的标准化BI数据分析方案。 30分钟&#…

【S32DS报错】-7-程序进入HardFault_Handler,无法正常运行

【S32K3_MCAL从入门到精通】合集: S32K3_MCAL从入门到精通https://blog.csdn.net/qfmzhu/category_12519033.html 问题背景: 在S32DS IDE中使用PEmicro(Multilink ACP,Multilink Universal,Multilink FX&#xff09…

智能驾驶规划控制理论学习06-基于优化的规划方法之数值优化基础

目录 一、优化概念 1、一般优化问题 2、全局最优和局部最优 二、无约束优化 1、无约束优化概述 2、梯度方法 通用框架 线性搜索 回溯搜索 3、梯度下降 基本思想 实现流程 ​4、牛顿法 基本思想 实现流程 5、高斯牛顿法 6、LM法(Le…

java数据结构与算法刷题-----LeetCode637. 二叉树的层平均值

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 广度优先2. 深度优先 解题思路:时间复杂度O(n)&am…

网络基础(二)

目录 再谈"协议" 序列化 JSON 网络版计算器 HTTP协议 认识URL urlencode和urldecode HTTP协议格式 telnet指令 stat函数 struct stat类型 stringstream类型 wget指令 HTTP的方法 HTTP的状态码 传输层 再谈端口号 端口号范围划分 认识知名端口号(W…

深度学习_16_权重衰退调整过拟合

所谓过拟合即模型复杂度较高,但用于训练数据集过于简单,最后导致模型将过多无用渣质作为学习对象 这个在上篇 深度学习_15_过拟合&欠拟合 已经详细介绍,以下便不再赘述。 上篇提到要想解决过拟合现象可以试着降低模型复杂度&#xff0c…

Python web框架fastapi中间件与CORS详细教学

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 所属专栏:Fastapi 景天的主页:景天科技苑 文章目录 fastapi中间件与CORS1、中间件1.创建中间件方法2.中间件里面添加响应头…

抖音视频评论批量采集软件|视频下载工具

《轻松搞定!视频评论批量采集软件,助您高效工作》 在短视频这个充满活力和创意的平台上,了解用户评论是了解市场和观众心声的重要途径之一。为了帮助您快速获取大量视频评论数据,我们推出了一款操作便捷、功能强大的软件&#xff…

第一弹:Flutter安装和配置

目标: 1)配置Flutter开发环境 2)创建第一个Flutter Demo项目 Flutter中文开发者网站: https://flutter.cn/ 一、配置Flutter开发环境 Flutter开发环境已经提供集成IDE开发环境,因此需要配置开发环境的时候&#xf…

【STM32】STM32学习笔记-读写内部FLASH 读取芯片ID(49)

00. 目录 文章目录 00. 目录01. FLASH概述02. 读写内部FLASH接线图03. 读写内部FLASH相关API04. 读写内部FLASH程序示例05. 读写芯片ID接线图06. 读写芯片ID程序示例07. 程序示例下载08. 附录 01. FLASH概述 STM32F10xxx内嵌的闪存存储器可以用于在线编程(ICP)或在程序中编程(…
最新文章