关于我想写一个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和笔者的交流群进行深入交流。

相关推荐
黄俊懿3 分钟前
【深入理解SpringCloud微服务】手写实现各种限流算法——固定时间窗、滑动时间窗、令牌桶算法、漏桶算法
java·后端·算法·spring cloud·微服务·架构
2401_8574396930 分钟前
“衣依”服装销售平台:Spring Boot技术应用与优化
spring boot·后端·mfc
Jerry.ZZZ1 小时前
系统设计,如何设计一个秒杀功能
后端
九圣残炎3 小时前
【springboot】简易模块化开发项目整合Redis
spring boot·redis·后端
.生产的驴3 小时前
Electron Vue框架环境搭建 Vue3环境搭建
java·前端·vue.js·spring boot·后端·electron·ecmascript
爱学的小涛3 小时前
【NIO基础】基于 NIO 中的组件实现对文件的操作(文件编程),FileChannel 详解
java·开发语言·笔记·后端·nio
爱学的小涛3 小时前
【NIO基础】NIO(非阻塞 I/O)和 IO(传统 I/O)的区别,以及 NIO 的三大组件详解
java·开发语言·笔记·后端·nio
北极无雪3 小时前
Spring源码学习:SpringMVC(4)DispatcherServlet请求入口分析
java·开发语言·后端·学习·spring
爱码少年3 小时前
springboot工程中使用tcp协议
spring boot·后端·tcp/ip
2401_8576226611 小时前
SpringBoot框架下校园资料库的构建与优化
spring boot·后端·php