关于我想写一个Go系列的这件事

简介: 本文是Go语言专栏的开篇,作者sharkChili分享了他对Go语言的喜爱,并简要介绍了如何在Windows和Linux上搭建Go环境。文章包括下载安装包、解压、配置环境变量等步骤。此外,还展示了编写并运行第一个"Hello, sharkChili"的Go程序。最后提到了Go项目的`.gitignore`文件示例,并鼓励读者关注作者的公众号以获取更多Go语言相关的内容。

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

写在文章开头

第一次接触Go就被其灵巧的编程范式和并发友好的风格所惊艳到,曾经听过耗子叔说过:Go有着python的姿态和C语言的理念,所以笔者经过一段时间的了解和整理,准备写一个关于Go语言的专栏,希望对你有帮助。

这篇稿子算是本系列的一个引子,通过这篇文章你将搭建起Go语言编程的基本环境和一段非常基础的Go语言代码:

Hi,我是sharkChili,是个不断在硬核技术上作死的java coder,是CSDN的博客专家,也是开源项目Java Guide的维护者之一,熟悉Java也会一点Go,偶尔也会在C源码边缘徘徊。写过很多有意思的技术博客,也还在研究并输出技术的路上,希望我的文章对你有帮助,非常欢迎你关注我的公众号:写代码的SharkChili

搭建Go语言环境

简介

因为笔者是日常开发只用到WindowsLinux,所以这里的搭建只涉及这两套操作系统搭建的,整体来说,Go语言的环境搭建步骤和Java差不多,依次为:

  1. 下载集成开发环境安装包。
  2. 安装。
  3. 配置环境变量。

Linux版本安装

首先介绍一下Linux下的环境配置,首先到go官网下载Linux系统对应的安装包:

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

截至笔者写下这篇文章,笔者所下载的版本如下所示:

完成下载后将其上传到服务器上,然后进行解压到/usr/local目录:

tar -C /usr/local/ -xzf go1.22.0.linux-amd64.tar.gz

随后就可以进行环境变量配置,我们通过vim编辑profile

vim /etc/profile

在文件末尾添加如下一条我们go的解压路径:

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

再使用source命令使之生效:

source /etc/profile

完成后键入如下命令:

go version

如果控制台输出对应版本信息则说明配置生效了:

go version go1.22.0 linux/amd64

Windows环境配置

而Windows配置则相对容易一些,首先我们需要到Go官网下载Go dev,地址如下:

https://go.dev/dl/

笔者选择的版本如下图所示,下载完成后解压安装即可:

安装go编译器后,它会自动帮我配置环境变量,所以完成安装后我们直接在cmd输入一下go,如果可以看到版本信息即说明本次安装成功了:

你的第一行Go语言代码

我们首先创建一个名为main.go的文件,然后编写如下代码,可以看到笔者指明了packagemain,因为go语言在运行时,其底层会定位到main包下的main方法执行,所以我们创建第一个go文件一定要注意这一点,然后我们导入fmt(format)包,在main方法中通过fmt包的Println方法输出一段话:

package main

import "fmt"

func main() {
   
   
    fmt.Println("hello sharkChili")

}

完成这个文件的创建之后,我们在Linux系统运行如下指令,对文件进行编译:

go build main.go

然后执行编译后的文件:

./main

最终输出结果如下,自此,我们完成了对Go语言第一行代码的编写

hello sharkChili

当然,我们也可以直接编译并运行,用户只需输出run指令即可:

go run main.go

go程序的.gitignore

很其他编程语言一样,Go语言也有自己的.gitignore文件,读者在学习Go时如果希望用Git进行版本控制,建议使用笔者推荐的这个版本:

tmp
.env
gohub
.DS_Store
.history

# Golang #
######################
# `go test -c` 生成的二进制文件
*.test
# go coverage 工具
*.out
*.prof
*.cgo1.go
*.cgo2.c
_cgo_defun.c
_cgo_gotypes.go
_cgo_export.*

# 编译文件 #
###################
*.com
*.class
*.dll
*.exe
*.exe~
*.o
*.so

# 压缩包 #
############
# Git 自带压缩,如果这些压缩包里有代码,建议解压后 commit
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# 日志文件和数据库 #
######################
*.log
*.sqlite
*.db

# 临时文件 #
######################
tmp/
.tmp/

# 系统生成文件 #
######################
.DS_Store
.DS_Store?
.AppleDouble
.LSOverride
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
.TemporaryItems
.fseventsd
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# IDE 和编辑器 #
######################
.idea/
/go_build_*
out/
.vscode/
.vscode/settings.json
*.sublime*
__debug_bin
.project

# 前端工具链 #
######################
.sass-cache/*
node_modules/

小结

本篇文章是笔者对Go的一个引子,简单的介绍了Go的环境搭建和基本代码示例,希望本篇文章对你有所收获。

我是sharkchiliCSDN Java 领域博客专家开源项目—JavaGuide contributor,我想写一些有意思的东西,希望对你有帮助,如果你想实时收到我写的硬核的文章也欢迎你关注我的公众号:写代码的SharkChili和笔者的交流群进行深入交流。

目录
相关文章
|
4天前
|
Kubernetes Go 数据库
分享48个Go源码,总有一款适合您
分享48个Go源码,总有一款适合您
65 0
|
7月前
|
Cloud Native Go 开发者
那些年,我们追过的Go BUG
那些年,我们追过的Go BUG
46 0
|
8月前
|
Kubernetes Cloud Native Go
为何每个开发者都在谈论Go?2
为何每个开发者都在谈论Go?
65 0
|
8月前
|
Java 编译器 Go
为何每个开发者都在谈论Go?1
为何每个开发者都在谈论Go?
89 0
|
8月前
|
Java 测试技术 Go
送给学Go或者转Go同学的一套编码规范
有没有 xd 们是从别的语言转 Go
153 0
送给学Go或者转Go同学的一套编码规范
|
10月前
|
算法 Java Go
Go可以无限Go?回家等通知吧
Go可以无限Go?回家等通知吧
Go 每周一刷1.0
Go 每周一刷1.0
65 0
Go 每周一刷1.0
|
算法 Go 索引
Go 每周一刷1.1
Go 每周一刷1.1
59 0
Go 每周一刷1.1
|
Go PHP
【GO】恐慌处理
【GO】恐慌处理
138 1
【GO】恐慌处理
|
Java Go C语言
慢聊Go之GoVSJava之微观比较(8)|Go主题月
慢聊Go之GoVSJava之微观比较(8)|Go主题月
166 0
http://www.vxiaotou.com