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

news2024/9/23 21:23:08

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.coloradmin.cn/o/1490232.html

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

相关文章

【古剑杯】

[古剑山]unse方法一 考点&#xff1a;php反序列化、php伪协议 解题步骤&#xff1a; 打开题目界面 直接访问当前目录的test.php&#xff0c;没有返回结果&#xff0c;看到include函数&#xff0c;可以结合php伪协议读取出test.php的源码 解密后 <?php $test "…

1.2计算机体系结构与存储系统

1.计算机体系结构 计算机体系结构简单看看即可&#xff1b; CISC&#xff08;复杂指令集计算机&#xff09;和RISC&#xff08;精简指令集计算机&#xff09; 2.流水线技术 串行效率低&#xff0c;所以用到流水线技术&#xff0c;可以大大缩短执行时间&#xff1b; △t1、△…

docker-compose启动postgres数据库,实现主从备份

文章目录 1. 主库2. 从库3. 测试 1. 主库 创建pg-m 目录&#xff0c;并进入该目录创建docker-compose.yml文件&#xff0c;内容如下&#xff1a; version: "3.1" services:pg_master:image: postgres:15.3container_name: pg_masterenvironment:POSTGRES_PASSWORD:…

景区公园一体化设备怎么选

景区公园一体化设备的选型是一个关键的决策&#xff0c;直接影响着景区公园的整体运营效益和游客体验质量。在选择设备时&#xff0c;需要考虑多个因素&#xff0c;包括设备功能、可靠性、易用性、美观性以及与景区公园整体风格的匹配性等。 首先&#xff0c;在选择设备时要确保…

VScode+Live Service+Five Service实现php实时调试

VScodeLive ServiceFive Service实现php实时调试 一、VScode插件安装及配置 1.Code Runner settings.json设置&#xff08;打开方式&#xff1a;ctrlp&#xff0c;搜索settings.json&#xff09; 设置php为绝对路径&#xff08;注意路径分隔符为\\或/&#xff09; 2. Live S…

0101二阶与三阶行列式-行列式-线性代数

一 引例 求解二元一次方程组 { a 11 x 1 a 12 x 2 b 1 a 21 x 1 a 22 x 2 b 2 \begin{cases} a_{11}x_1a_{12}x_2b_1\\ a_{21}x_1a_{22}x_2b_2\\ \end{cases} {a11​x1​a12​x2​b1​a21​x1​a22​x2​b2​​ 解&#xff1a; 1 a 21 − 2 a 11 ⇒ x 2 a 11 b 2 − a…

苹果因在iOS音乐流媒体市场上的反向引导行为,在欧盟被罚款18.4亿欧元

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

cache基础

set index 是 cache line 在 way 中的序号。set index 通常直接简称为 index 。如果一个物理地址确定&#xff0c;那么其 index 就确定了&#xff0c;这个地址对应的数据缓存在哪个 set 中也就确定了。如上图所示&#xff0c; 物理地址的 bits[y-1:x] 决定了数据缓存在哪个set中…

【FastChat】用于训练、服务和评估大型语言模型的开放平台

FastChat 用于训练、服务和评估大型语言模型的开放平台。发布 Vicuna 和 Chatbot Arena 的存储库。 隆重推出 Vicuna&#xff0c;一款令人印象深刻的开源聊天机器人 GPT-4&#xff01; &#x1f680; 根据 GPT-4 的评估&#xff0c;Vicuna 达到了 ChatGPT/Bard 90%* 的质量&…

红帆OA 多处 SQL注入漏洞复现

0x01 产品简介 红帆iOffice.net从最早满足医院行政办公需求(传统OA),到目前融合了卫生主管部门的管理规范和众多行业特色应用,是目前唯一定位于解决医院综合业务管理的软件,是最符合医院行业特点的医院综合业务管理平台,是成功案例最多的医院综合业务管理软件。 0x02 漏…

JavaScript实现将输入框内容放大的效果

问题描述&#xff1a;利用DOM所学知识&#xff0c;实现在输入框内输入内容时&#xff0c;在输入框上方显示一个将文字放大的框&#xff0c;在不输入内容时&#xff0c;这个框是被隐藏的。 关键代码&#xff1a; <!DOCTYPE html> <html lang"en"><he…

手把手教你解析xml格式的word文档-附代码

1 背景 dom4j&#xff0c;Jdom&#xff0c;w3c dom解析xml文档时速度比较慢&#xff0c;因此选择自己写代码解析xml文档。 2 思路 首先&#xff0c;对xml文件进行分析&#xff0c;熟悉标签&#xff1b; 然后&#xff0c;切分文档为不同的块。我们要对文档中的书签进行替换&…

multiprocessing Event实现中断进程或程序

参考&#xff1a;https://www.cnblogs.com/MoKinLi/p/17931515.html import multiprocessing import timedef worker(event, value):while True:# 检查事件是否被设置if event.is_set():# 事件被设置&#xff0c;中断程序break# 模拟工作time.sleep(1)print(f"Working: {…

【云呐】固定资产管理系统包括哪些模块

固定资产管理是企业经营过程中非常重要的任务。为确保资产合理利用和资本增值&#xff0c;企业需建立完善的固定资产管理体系。本文将详细介绍固定资产管理系统的模块和结构&#xff0c;帮助企业更好地管理资产。 固定资产管理系统的模块 财产采购管理功能:该模块主要从事固定…

喜讯!聚铭网络实力入选「网安新兴赛道厂商速查指南」11大细分赛道

近日&#xff0c;国内首家专业聚焦网络安全商业市场研究分析和加速服务的机构——斯元商业咨询正式发布2024「网安新兴赛道厂商速查指南Emerging Technology Vendor Index」。 聚铭网络凭借在网络安全领域的深厚技术积累、丰富的行业应用经验和良好的客户口碑&#xff0c;成功…

湖人官方晒照:新援哈里-贾尔斯今日到队

直播吧指定地址&#xff1a;www.bdky.cn 3月5日讯 今日湖人官方晒照&#xff0c;球队新援哈里-贾尔斯已经到队&#xff01; 此前湖人用双向合同签下内线球员哈里-贾尔斯&#xff0c;本赛季他在篮网打了25场比赛&#xff0c;场均可以拿到3.4分1.6篮板。

Python web框架fastapi中间件的使用,CORS跨域详解

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

【LeetCode每日一题】【BFS模版与例题】【二维数组】130被围绕的区域 994 腐烂的橘子

前几天写过一篇BFS比较基础版的遍历 【LeetCode每日一题】【BFS模版与例题】863.二叉树中所有距离为 K 的结点 &#xff0c;可以先看一下再看本文 用 BFS 算法遍历二维数组 遍历二维矩阵&#xff1a;二维矩阵中的一个位置看做一个节点&#xff0c;这个节点的上下左右四个位置…

云桥通+企业分支机构:SDWAN组网为分支机构带来的革命性改变

云桥通曾服务过一家跨国公司D公司&#xff0c;其总部位于美国纽约&#xff0c;全球设有多个分支机构&#xff0c;包括英国伦敦、中国上海和巴西圣保罗。为了实现高效的数据通信和协作&#xff0c;D公司决定采用云桥通的SDWAN企业组网连接其全球分支机构&#xff0c;以下是详细的…

进入实验室1

with open(csv_filepath) as f:reader csv.reader(f)lst list(reader) lst.pop(0) 这段代码的作用是打开一个CSV文件(csv_filepath)&#xff0c; 然后使用csv模块的reader函数创建一个CSV文件的读取器。 接着将读取器转换为列表&#xff0c;并将其存储在变量lst中。 最后&…