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

写在文章开头

第一次接触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系统对应的安装包:

golang.google.cn/dl/

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

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

bash 复制代码
tar -C /usr/local/ -xzf go1.22.0.linux-amd64.tar.gz

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

bash 复制代码
vim /etc/profile

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

ruby 复制代码
export PATH=$PATH:/usr/local/go/bin

再使用source命令使之生效:

bash 复制代码
source /etc/profile

完成后键入如下命令:

go 复制代码
go version

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

bash 复制代码
go version go1.22.0 linux/amd64

Windows环境配置

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

go.dev/dl/

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

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

你的第一行Go语言代码

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

go 复制代码
package main

import "fmt"

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

}

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

go 复制代码
go build main.go

然后执行编译后的文件:

bash 复制代码
./main 

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

复制代码
hello sharkChili

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

go 复制代码
go run main.go

go程序的.gitignore

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

shell 复制代码
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和笔者的交流群进行深入交流。

相关推荐
鬼火儿6 小时前
SpringBoot】Spring Boot 项目的打包配置
java·后端
cr7xin7 小时前
缓存三大问题及解决方案
redis·后端·缓存
间彧8 小时前
Kubernetes的Pod与Docker Compose中的服务在概念上有何异同?
后端
间彧8 小时前
从开发到生产,如何将Docker Compose项目平滑迁移到Kubernetes?
后端
间彧8 小时前
如何结合CI/CD流水线自动选择正确的Docker Compose配置?
后端
间彧8 小时前
在多环境(开发、测试、生产)下,如何管理不同的Docker Compose配置?
后端
间彧8 小时前
如何为Docker Compose中的服务配置健康检查,确保服务真正可用?
后端
间彧8 小时前
Docker Compose和Kubernetes在编排服务时有哪些核心区别?
后端
间彧8 小时前
如何在实际项目中集成Arthas Tunnel Server实现Kubernetes集群的远程诊断?
后端
brzhang9 小时前
读懂 MiniMax Agent 的设计逻辑,然后我复刻了一个MiniMax Agent
前端·后端·架构