[Go] Go语言教程

news/2025/2/8 2:48:28/文章来源:https://www.cnblogs.com/johnnyzen/p/18583344

Go-lang概述

  • Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
  • Go 是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。

现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。

  • Go 语言特色
  • 简洁、快速、安全
  • 并行、有趣、开源
  • 内存管理、数组安全、编译迅速
  • Go 语言用途
  • Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
  • 对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。

它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。

环境安装

  • 支持的操作系统

Go 语言支持以下系统:

  • Linux
  • Linux
  • FreeBSD
  • Mac OS X

(也称为 Darwin

  • Windows
  • 安装包

安装包下载地址为:https://go.dev/dl/。
如果打不开可以使用这个镜像地址: https://golang.google.cn/dl/。

  • 各个系统对应的包名:
    | 操作系统 | 包名 |
    | Windows | go1.4.windows-amd64.msi |
    | Linux | go1.4.linux-amd64.tar.gz |
    | Mac | go1.4.darwin-amd64-osx10.8.pkg |
    | FreeBSD | go1.4.freebsd-amd64.tar.gz |

基于 UNIX/Linux/Mac OS X, 和 FreeBSD 的安装

以下介绍了在UNIX/Linux/Mac OS X, 和 FreeBSD系统下使用源码安装方法:
亦可参见 : https://www.runoob.com/go/go-environment.html

  • 1、下载二进制包:go1.4.linux-amd64.tar.gz。
  • 2、将下载的二进制包解压至 /usr/local 目录。
tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz
  • 3、将 /usr/local/go/bin 目录添加至 PATH 环境变量:
export PATH=$PATH:/usr/local/go/bin

以上只能暂时添加 PATH关闭终端下次再登录就没有了。
我们可以编辑 ~/.bash_profile 或者 /etc/profile,并将以下命令添加该文件的末尾,这样就永久生效了:

export PATH=$PATH:/usr/local/go/bin

添加后需要执行:

source ~/.bash_profile
或
source /etc/profile

注意:MAC 系统下你可以使用 .pkg 结尾的安装包直接双击来完成安装,安装目录在 /usr/local/go/ 下。

基于 Windows 系统的安装

  • 选择对应版本,选择windows-amd64.zip下载后解压到本地目录

https://golang.google.cn/dl/go1.23.3.windows-amd64.zip [√]
https://golang.google.cn/dl/go1.23.3.linux-amd64.tar.gz
https://golang.google.cn/dl/go1.23.3.src.tar.gz

  • 创建一个新文件夹,在里面新建binpkgsrc3个文件夹 : 此步骤可忽略

可以是任意位置,用来存放go项目。

假定其目录为: D:\Workspace\CodeRepositories\GoHelloWorld

D:\Workspace\CodeRepositories\GoHelloWorld/bin/pkg/src
  • 配置系统变量
  • GOROOT

系统变量下选择新建,添加一个GOROOT的变量,变量值为当前go的安装目录

GOROOT
D:\Program\Go-Lang\go1.23.3.windows-amd64\go
  • GOPATH: 当前工作目录,可以随时按需修改
GOPATH
D:\Workspace\CodeRepositories\GoHelloWorld
  • Path: 环境变量

添加2个值

%GOROOT%\bin
%GOPATH%\bin
  • 验证
go env

如果出现这样就配置成功了

  • 打开CMD终端,输入以下配置 (可选步骤)
go env -w GO111MODULE=ongo env -w GOPROXY=https://goproxy.cn,direct
  • 查看版本
> go version
go version go1.23.3 windows/amd64

FAQ

GOROOTGOPATH路径的区别?

  • GOROOTGOPATH是Go语言开发环境中的两个重要路径,它们在功能和使用场景上有明显的区别。

  • GOROOT

GOROOT是Go语言的安装目录,包含了Go的编译器和标准库。
GOROOT在绝大多数情况下都不需要修改,因为它主要存储Go语言的安装文件,如编译器和标准库。
GOROOT目录下通常包含bin、doc和src子目录,其中bin目录包含go和gofmt等工具,类似于Java的JDK目录。

  • GOPATH

GOPATH开发时的工作目录,用于存放项目代码、编译后的二进制文件和第三方依赖包。
GOPATH可以设置多个,但第一个GOPATH会被默认使用
go get命令下载的包会存放在第一个GOPATH的src目录下,而go install命令会在找到包的GOPATH下的bin目录生成可执行文件。

  • 设置和使用

在开发过程中,设置好GOROOTGOPATH执行编译命令至关重要。
GOROOT通常不需要修改,而GOPATH则需要根据项目需求进行设置。
Go语言在寻找包时会首先在GOROOT的src目录中搜索,如果找不到才会在GOPATH的src目录中搜索。

X 参考文献

  • Go语言教程 - 菜鸟教程

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

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

相关文章

hhdb数据库介绍(10-28)

管理 管理菜单主要囊括对业务数据进行管理的功能,例如对数据的备份恢复或执行业务表的DDL语句等操作。 数据对象 数据对象功能可以帮助用户通过列表实时查看当前已存在的数据对象,了解业务数据的整体情况。提供了对数据对象的筛选、统计、关联、详情等信息。基础数据对象的统…

hhdb数据库介绍(10-26)

报表 数据节点吞吐量 数据节点吞吐量为计算节点发往存储节点的操作量统计,一般用SELECT、UPDATE、DELETE、INSERT、OTHER五种类型分类计算节点操作。 图形模式 数据节点吞吐量图形模式包含数据节点吞吐总量对比图、数据节点吞吐量变化趋势、集群吞吐类型对比图、逻辑库吞吐量对…

离散数学命题逻辑

离散数学命题逻辑语雀链接:https://www.yuque.com/g/wushi-ls7km/zyko8c/tfttq5zq0xyldfxn/collaborator/join?token=u0bJmfKd8DcgpA1k&source=doc_collaborator# 《离散数学命题逻辑》

值班空岗睡岗识别智慧矿山视频分析技术安防摄像机的红外(补光)技术阐述科普

在现代安防监控领域,红外线(IR)技术因其在夜间或光线不足环境中的卓越表现而变得愈发重要。本文将深入探讨红外线技术在安防监控中的应用,分析其工作原理、分类以及在不同场景下的实际应用,同时探讨红外技术在智能交通和智慧矿山等领域中面临的挑战和解决方案。通过这一讨…

图片是不是越小越好?如何优化图片呢?

图片并非越小越好,而是要在文件大小和图像质量之间找到一个平衡点。过小的图片文件大小通常意味着图像质量的损失,导致图片模糊、像素化或细节丢失,从而影响用户体验。优化的目标是在保证可接受的图像质量的前提下,尽可能减小文件大小,以提高网页加载速度和性能。 以下是一…

井底车场人员进入识别智慧矿山一体机人车防碰撞识别AI科技护航矿山安全生产

在当代工业制造领域,安全生产始终是企业稳定发展的重中之重,特别是在那些如非煤矿山这般风险较高的作业场所,保障工作人员的安全、防止意外发生是极其关键的。信息技术的快速进步使得智慧矿山一体机成为了安全管理中不可或缺的一环,其在非煤矿山行业的应用正变得越来越重要…

清除IDEA缓存 java: 程序包org.springframework.cloud.openfeign不存在

不报红,也能点到方法里面,但运行报错说 XXX 不存在 D:\Projects\80.HIS\SourceCode....\WebApplication.java:6:43 java: 程序包org.springframework.cloud.openfeign不存在解决办法 file -> invalidate caches选中 "清除文件系统缓存和本地历史记录",点击【清…

在编辑文章内容的时候,在Edge浏览器里面,富文本编辑器不显示的问题

在编辑文章内容的时候,在Edge浏览器里面,富文本编辑器不显示的问题 一般是 兼容或者缓存问题, 打开F12,再刷新,他就正常显示了。 建议 ctrl+F5多刷新几次试试扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Java…

宝塔提示没有找到站点您的请求在Web服务器中没有找到对应的站点!

问题与答案 您的请求在Web服务器中没有找到对应的站点! 可能原因: 1。您没有将此域名或IP绑定到对应站点! 2。配置文件未生效! 如何解决: 1.检查是否已经绑定到对应站点,若确认已绑定,请尝试重载Web服务; 2。检查端口是否正确; 3.若您使用了CDN产品,请尝试清除CDN缓存…

PbootCMS登录失败:您登录失败次数太多已被锁定,请616秒后再试!

PbootCMS登录失败:您登录失败次数太多已被锁定,请616秒后再试! 解决办法: 删除网站根目录下的runtime文件夹,刷新网页,重新登录扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网…

PbootCMS 添加栏目时报错“该内容栏目编号已经存在,不能再使用”,如何解决?

当你在PbootCMS中尝试添加新的栏目时,如果遇到“该内容栏目编号已经存在,不能再使用”的错误提示,通常是因为数据库中的栏目编号(scode)已经存在重复值。为了解决这个问题,你可以按照以下步骤操作:备份数据库:在进行任何数据库操作之前,建议先备份整个数据库,以防止意…

PbootCMS上传到服务器后用域名访问,为什么会提示未授权的相关信息?

当PbootCMS上传到服务器并用域名访问时,如果没有到官网获取域名授权码,系统会默认提示未授权的相关信息。这是PbootCMS的一项安全机制,旨在确保每个使用PbootCMS的网站都是经过官方授权的。这种机制可以防止未经授权的使用,保护开发者的权益。然而,在实际应用中,有时我们…