【启程Golang之旅】环境设置、工具安装与代码实践

欢迎来到Golang的世界!在当今快节奏的软件开发领域,选择一种高效、简洁的编程语言至关重要。而在这方面,Golang(又称Go)无疑是一个备受瞩目的选择。在本文中,带领您探索Golang的世界,一步步地了解这门语言的基础知识和实用技巧。

目录

初识Golang

工具选择安装

环境安装与配置

语言编译特点


初识Golang

     go语言由谷歌传奇大牛 肯·汤普逊 于2007年设计创建,他也是B和C语言的发明者,2012年发布了开源版本1.0版本,go语言的设计初衷就是简单高效,这也是我们常常说go而不是golang的原因,其源代码编译成机器代码,意味着通常优于解释性语言,因go极快的编译速度而出名。

     尽管go是静态类型语言,但是其提供了执行类型的推断,来让语法更简洁和实用,此外其也具有包和模块系统,方便再项目开发期间导入导出代码,当然go还支持并行开发,能够指定哪些函数可以与其他函数同时运行,go语言的发展简史大致如下:

2007年,谷歌工程师RobPike,KenThompson和RobertGrisemer开始设计一门全新的语言,这是Go语言的最初原型。

2009年11月,Google将Go语言以开放源代码的方式向全球发布。

2015年8月,Go1.5版发布,本次更新中移除了"最后残余的c代码”

2017年2月,Go语言G01.8版发布。

2017年8月,Go语言Go1.9版发布。

2018年2月,Go语言Go1.10版发布。

2018年8月,Go语言Go1.11版发布。

2019年2月,Go语言Go1.12版发布。

2019年9月,Go语言Go1.13版发布。

2020年2月,Go语言Go1.14版发布。

2020年8月,Go语言Go1.15版发布。

一个go语言的应用程序,在运行的时候是不需要依赖外部库的,把执行时需要的所有库都打包到程序当中,所以go的程序比较大,如果import的包在程序中没有使用的话,程序是不允许编译的。

工具选择安装

开发go语言许多开发者工具都可以支持,如下:

1)visual studio code,Microsoft产品(简称VSCode):一个运行于Mac Os、Windows和Linux之上的,默认提供Go语言的语法高亮,安装Go语言插件,还可以支持智能提示,编译运行等功能。

2)SublimeText,可以免费使用,默认也支持Go代码语法高亮,只是保存次数达到一定数量之后就会提示是否购买,点击取消继续用,和正式注册版本没有任何区别

3)Vim:Vim是从vi发展出来的一个文本编辑器,代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用

4)Emacs:Emacs传说中的神器,她不仅仅是一个编辑器,因为功能强大,可称它为集成开发环境

5)Eclipse IDE工具,开源免费,并提供GoEclipse插件

6)LiteIDE,LiteIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境(IDE),是中国人开发的。

7)JetBrains公司的产品:PhpStrom、WebStrom和PyCharm等IDE工具,都需要安装Go插件,还要一款特别开发go语言的工具,名称就叫做Golang。

这里我们选择JetBrains公司的Golang开发者工具进行后期的go语言的开发,其安装教程如下:

首先我们先打开工具下载 官网 ,点击Download下载即可,如下:

下载完成双击下载的exe文件进行安装,然后傻瓜式安装即可,这里安装的文件位置记得不要放在C盘即可,然后下载完成双击打开工具,这里安装一下中文的插件然后重启工具即可:

环境安装与配置

随着golang的发展衍生了许多版本,不同的项目可能用到的golang的版本不同,所以这里我们需要使用一个版本控制工具进行安装,当然你只安装一个版本也是可以的,打开 官网 ,进行傻瓜式的安装然后配置一下环境变量即可,这里不再赘述,本文讲解一下多版本管理的操作:

首先先确保你电脑之前没有下载过golang环境,然后点击 链接 ,进入github页面点击下载,这里根据自己电脑的系统情况进行安装,这里我拿window进行举例,点击下载:

压缩包解压之后,将其放置在自定义目录里面,尽量不要放在C盘,如下:

接下来打开系统中的环境变量,来配置环境,需要进行如下几点的配置:

设置镜像:国内无法自由访问官网,为确保使用现在安装go流程,设置国内镜像点,配置系统变量如下:

G_MIRROR = https://golang.google.cn/dl/

设置g的工作目录:这里放在我自定义的golang目录里面,配置系统变量如下:

G_HOME = D:\environment\golang

配置GOROOT:这个指向g工作目录下的go,g安装go版本后,会在这个路径下建立一个软链到versions目录下的指定版本,靠这个方法来控制当前的go版本,如果安装g之前已经安装过go了,需要修改GOROOT这个环境变量,配置系统变量如下:

GOROOT = %G_HOME%\go

支持自定义安装目录:开启所有的实验特性,配置支持自定义安装目录,并配置GOBIN:

G_EXPERIMENTAL = true
GOBIN = %GOROOT%\bin

配置path变量:设置 g.exe 目录(及 g.exe 文件所在目录),这样就可以使用命令行随时访问,并配置 golang 执行文件目录:

D:\environment\golang\g%GOBIN%

cmd测试: 配置完上面的环境变量之后,接下来我们打开终端输入 g 进行测试,如下说明成功:

输入 g env 可以看到g的环境变量配置;输入 g -v 可以看到当前g的版本信息:

以下是 g 工具常用的命令:

# 自动升级至最新版本
g self update
# 查询已安装的go版本
g ls
# 查询可供安装的所有go版本
g ls-remote
#查询当前可供安装的stable状态的go版本
g ls-remote stable
#安装指定go版本1.22.1
g install 1.22.1
# 切换至指定版本,需已下载
g use 1.22.1
# 卸载一个已安装的go版本
g uninstall 1.22.1

接下来我们开始给我们的电脑开始安装go环境,执行如下命令查看可以按钮的go环境:

这里我选择安装两个版本:1.22.1 和 1.16.3 ,如下:

回到我们自定义的安装go环境的目录,可以看到我们的版本都已经安装成功了:

现在我们cmd执行go version可以查看到我们当前使用的go环境版本如下:

环境工具安装配置好之后,接下来我们开始正式在编辑器中编写代码,如下:

package main // 声明文件所在的包,每个go文件必须有归属的包
import "fmt" // 引入程序需要的包,为了使用包里面封装好的函数func main() { // main主函数,程序的入口fmt.Println("Hel12lo, World!") // 在控制台打印输出一句话,双引号中的内容会原样输出
}

这里借助go包中的打印函数,在控制台输出 hello world 字样:

go语言的项目,需要有特定的目录结构进行管理,不能随便写,一个标准的go工程需要有三个目录,需要用一个名为GOPATH的环境变量来指定,如下,我们新建项目直接打开src文件即可:

src:存储项目的源代码

bin:编译之后的程序之后,使用标准命令go install之后存放位置

pkg:存放缓存包

语言编译特点

go语言是不区分平台的,在windows下面也可以编译一个程序,在linux下运行,需要两个环境变量来控制,如下:

GOOS设定运行的平台

mac:GOOS = darwin;linux:GOOS = linux;windows:GOOS = windows

GOARCH目标平台的体系构架

386:GOARCH = 386;amd64:GOARCH = amd64;arm:GOARCH = arm

执行 go env 可以看到我们在 windows 系统下运行的环境变量:

我们也可以将go编辑成linux下的运行的代码,我们可以通过命令 go build -o 命名文件 源文件,将一个go项目打包成一个exe文件,并且可以在windows系统下运行,如下:

如果想把文件编辑成linux系统下运行的可执行文件,通过改变goos可以操作,如下:

然后我们打包一个项目在windows运行肯定会出错的:

如果想把打包好的exe文件安装到一个目录上,我们就需要通过 go install 目录去执行,这里需要配置一下 GOBIN 环境变量的内容,修改一下其默认的位置, 这里我将其设置到如下目录:

执行如下命令之后

可以在设置文件夹下出现编译完成的exe文件,执行之后出现结果:

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.TCP的三次握手和四次挥手

一、前置知识 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。在传输数据前通信双方必须建立连接(所谓连接,是指客户端和服务端各自保存一份关于对方的信息,比如ip地址,端口号等)。TCP通过三次握手建立一个…

Levenshtein,一个超强的 Python 库!

更多Python学习内容:ipengtao.com 大家好,今天为大家分享一个超强的 Python 库 - Levenshtein。 Github地址:https://github.com/ztane/python-Levenshtein/ 文本相似性在许多领域如自然语言处理、数据清洗和信息检索中都有广泛应用。Python-…

微信支付商户的“商家转账到零钱”产品快速开通指南

微信支付商户的“商家转账到零钱”功能为商家提供了便捷的转账途径,尤其适用于费用报销、员工福利发放、合作伙伴货款或分销返佣等多种场景。那么,如何快速开通这一功能呢,需要快速开通的商户可以联系小编。 首先,确保你的企业已经…

RK3568平台开发系列讲解(SPI篇)spi_dev 驱动分析

🚀返回专栏总目录 文章目录 一、结构体二、API三、spidev驱动分析3.1、init3.2、probe3.3、spidev_write3.4、spidev_read3.5、spidev_open四、spi_register_driver分析五、spi_dev缺点沉淀、分享、成长

基于SVPWM的飞轮控制系统的simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于SVPWM的飞轮控制系统的simulink建模与仿真。SVPWM的核心思想是将逆变器输出的三相电压矢量在两相静止坐标系(αβ坐标系)中表示,通过控…

MKS 电源 :EDGE 30R40A 400kh 现货 功能正常

MKS 电源 :EDGE 30R40A 400kh 现货 功能正常

完整版解答!2024年数维杯数学建模挑战赛B题

B题 生物质和煤共热解问题的研究 技术文档第一问1.1问题一分析1.2数据预处理1.3问题一Spearman相关性分析 数据代码资料获取 技术文档 第一问 1.1问题一分析 对于问题一,题目要求分析出正己烷不溶物对焦油产率、水产率、焦渣产率这三个指标是否有显著影响&#x…

Django使用

一、根目录下安装 pip install django 二、创建djiango项目 django-admin startproject 项目名称 三、创建app python manage.py startapp app名称 四、启动 python manage.py runserver 五、编写URL与视图关系,相对路径 1、manage.py(见资源绑定…

QT状态机4-使用并行状态来避免组合爆炸

#include "MainWindow.h" #include "ui_MainWindow.h"MainWindow::MainWindow(QWidget *parent):

【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手

文章目录 一、前言二、绘制效果三、ConstraintLayout 使用方法3.1 创建布局文件3.2 替换配置3.3 设置约束,步骤13.4 设置约束,步骤23.5 其他设置 四、结束 一、前言 在进行Android APP开发过程中,减少layout嵌套即可改善UI的绘制性能&#x…

HIVE大数据平台SQL优化分享

相信很多小伙伴在面试的时候,必然跳不过去的一个问题就是SQL脚本的优化,这是很多面试官爱问的问题,也是可以证明你实力进阶的一个重要的能力。 下面给大家分享一个重量级的大数据行业sql技能---hive大数据平台SQL优化。 此文章是大数据平台…

能播放SWF文件的FlashPlayer播放器

问题: 你是不是遇到了 flash 动画 放不了了? 以前的flash游戏玩不了了 在网上很难找到好用的,免费Flashplayer播放器, 找到的也没法保存.exe 以前买的课件放不了了 一打开就更新提示: 再不就是意外能打开了但【创建…