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

写在文章开头

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

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

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

搭建Go语言环境

简介

因为笔者是日常开发只用到Windows和Linux,所以这里的搭建只涉及这两套操作系统搭建的,整体来说,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的文件,然后编写如下代码,可以看到笔者指明了package 为main,因为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的环境搭建和基本代码示例,希望本篇文章对你有所收获。

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

相关推荐
云浪6 小时前
Go 堆实战:从完全二叉树到 Top-K 与任务调度
后端·go
刚子编程16 小时前
我用 ASP.NET Core 做了个水稻病虫害检查系统
后端·asp.net
谢亮_vipxieliang16 小时前
用 PHP 构建轻量级 REST API:从路由到鉴权的完整实践
开发语言·后端·php
码事漫谈18 小时前
三步改掉 AI 味,附可直接复制的去 AI 味提示词
后端
IT_陈寒18 小时前
Redis卡顿的锅,这次真不是大key的错
前端·人工智能·后端
可乐鸡翅yeah_18 小时前
video.js 集成 hls.js 开发 M3U8 播放器,新手高频踩坑
开发语言·前端·javascript·后端·ecmascript·m3u8·音视频在线播放
程序猿_极客19 小时前
【免费】分享一套优质的基于SpringBoot的服装商城管理系统的设计与实现(带可视化图表、协同过滤功能),源码+文档+视频详解(讲解)
java·spring boot·后端·服装商城管理系统
明月_清风19 小时前
面对陌生的 GitHub 项目无从下手?这 4 个网站帮你快速读懂源码
前端·后端·github
bug菌20 小时前
🤔同事突然问我:Spring的注解 @Component 和 @Service 有何不同?
java·spring boot·后端