Go语言:记录一下Go语言系统学习的第一天

目录

前言:

1.下载

2.粗略熟悉一下命令行

3.简单分析程序包内容

4.Go与安卓的关系

5.依赖包下载网络代理的问题

6.分享一下敲得第一段Go代码


前言:

我已经算是掌握了Java,python,C,nodejs,还有一些前终端的语言html,包括最近刚刚上手的React 以及 React Native等。但为什么还要入局Go语言呢?因为我现在有一个后台的需求。然后我查了一下,目前综合各种维度来讲Go语言的gin框架正合我意。虽然用其他语言和可以很快甚至复用以前的框架和代码,不过为了长远考虑,我还是决定使用gin,但是摆在面前的是对于Go的不熟悉,但那又怎么样呢?谁让我是需求和研发的主宰呢,也只好由着自己的性子,一周的时间拿下Go!

1.下载

https://dl.google.com/go/go1.25.0.windows-amd64.msi

根据日期,目前最新稳定版本为1.25.0,下载完成直接安装

bash 复制代码
C:\Users\asus>go version
go version go1.25.0 windows/amd64

2.粗略熟悉一下命令行

乍一看,很友好,很清晰,没有那么庞杂。这里面非常棒的一个功能就是 build 。为什么?因为它可以直接让go文件编译成可执行文件。不像python等语言还要安装第三方依赖包,还有可能要解决很多不兼容问题。这一点让我爱上了这个语言。

另外就是这个go work的设计,很独特,目前我还没有完全领会。

fix 的功能也很惊艳,它提示可以自行升级和修复。让你可以很轻松的使用到最新的安全稳定的api。

vet 功能也很不错,至少可以快速的定位包的问题是否为已知的自带的bug,减少很多调试时间。

bash 复制代码
D:\code\go_code\sd>go help
Go is a tool for managing Go source code.

Usage:

        go <command> [arguments]

The commands are:

        bug         start a bug report
        build       compile packages and dependencies
        clean       remove object files and cached files
        doc         show documentation for package or symbol
        env         print Go environment information
        fix         update packages to use new APIs
        fmt         gofmt (reformat) package sources
        generate    generate Go files by processing source
        get         add dependencies to current module and install them
        install     compile and install packages and dependencies
        list        list packages or modules
        mod         module maintenance
        work        workspace maintenance
        run         compile and run Go program
        telemetry   manage telemetry data and settings
        test        test packages
        tool        run specified go tool
        version     print Go version
        vet         report likely mistakes in packages

以下表格是我根据"golang第六卷---go命令_go help-CSDN博客"学来的,我只是将其整理成了表格,以便记忆。想看细节大家可查原文。

|----|-----------------|-----------------------------------------------------------------------------------------------------------|
| 1 | go version | 用于查看当前go的版本 |
| 2 | go env | 命令用于打印Go语言的环境变量信息 |
| 3 | go build | 命令用于将Go语言源代码编译成可执行的程序或库文件。 |
| 4 | go install | 命令是Go语言中用于构建并安装指定包源代码的命令 |
| 5 | go get | 用于动态获取远程代码包及其依赖包,并进行编译和安装 |
| 6 | go run | go run命令用于运行源代码文件的命令 |
| 7 | go clean | 用于清理项目文件的命令 |
| 8 | go doc | 命令用于查看Go语言标准库中的包、类型、函数等的文档。 |
| 9 | go fix | 命令用于升级旧版本的Go代码以适应新版本的语言规范。 |
| 10 | go fmt | 命令用于格式化Go源代码文件。 |
| 11 | go generate | 命令用于执行指定的代码生成命令。 |
| 12 | go work | Go 1.18支持的工作区模式,可以本地同时开发多个互相依赖的Go Module |
| 13 | go test | 命令用于运行Go语言中的测试文件,它会自动查找当前目录下以_test.go结尾的文件 |
| 14 | go vet | 命令是go tool vet命令的简化版,它可以直接使用go vet命令来检查代码中的常见错误和潜在问题。 |
| 15 | go mod | go mod init <module-name>:初始化一个新的模块。这个命令会在当前目录下创建一个新的go.mod文件,用于记录项目的依赖关系。<module-name>是你的项目的模块名称 |
| 16 | go mod | go mod tidy:拉取缺少的模块,移除未使用的模块 |
| 17 | go mod | go mod download:下载项目的所有依赖包。这个命令会下载项目依赖的所有包到本地缓存中 |
| 18 | go mod | go mod vendor:将依赖包复制到项目的vendor目录中。这个命令会将所有的依赖包复制到项目的vendor目录下,以便项目可以在没有网络连接的情况下构建 |
| 19 | go mod | go mod verify:验证依赖包的完整性。这个命令会验证项目依赖包的完整性,确保它们没有被篡改 |
| 20 | go mod | go mod graph:打印模块依赖图。这个命令会打印出项目依赖的模块和它们之间的依赖关系 |
| 21 | go mod | go mod edit:编辑go.mod文件。这个命令可以用来手动编辑go.mod文件,例如添加或删除依赖项 |
| 22 | go mod | go mod why:解释为什么需要依赖包。这个命令可以帮助你理解为什么某个依赖包被引入到你的项目中 |
| | 内容来源 | golang第六卷---go命令_go help-CSDN博客 |

3.简单分析程序包内容

它没有Java的jre这个说法,好像也没有python的解释器类似的说法。go语言是静态类型的编译型语言,就像Java一样,所以其性能是有保障的。其天生支持高并发,混合编译等,既方便作为服务也很适合作为系统工具。

4.Go与安卓的关系

既然我看到这了就分享一下喽,大家可以看大佬这篇文章.。 因为最近接触的安卓比较多,所以对这个比较民感些。

用 Golang 开发 Android 应用(非 gomobile)(一 )------ 基本环境配置_golang to android-CSDN博客

5.依赖包下载网络代理的问题

我尝试了一下,腾讯的是很好用的

bash 复制代码
go env -w GOPROXY=https://mirrors.cloud.tencent.com/go/,direct

亲测可用

bash 复制代码
D:\code\go_code\sd>go mod tidy
go: finding module for package rsc.io/quote
go: example/hello imports
        rsc.io/quote: module rsc.io/quote: reading https://mirrors.aliyun.com/goproxy/rsc.io/quote/@v/list: 403 Forbidden

D:\code\go_code\sd>go env -w GOPROXY=https://mirrors.cloud.tencent.com/go/,direct

D:\code\go_code\sd>go mod tidy
go: finding module for package rsc.io/quote
go: downloading rsc.io/quote v1.5.2
go: found rsc.io/quote in rsc.io/quote v1.5.2
go: downloading rsc.io/sampler v1.3.0
go: downloading golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c

6.分享一下敲得第一段Go代码

很久没写过java代码了,这个package都快不会拼了哈哈哈!感觉go代码是Java代码和C语言杂交的一样,写着写着总感觉似曾相识。

我学习入门的网站选择的是:https://golang.google.cn/doc/tutorial/

朋友们,再会!

相关推荐
聪明的笨猪猪4 小时前
Java 面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
学工科的皮皮志^_^4 小时前
电压源和电流源学习理解
单片机·嵌入式硬件·学习
MrSYJ4 小时前
学完涨工资的技巧2:Spring Authorization Server如何签发JWTToken
java·spring boot·微服务
珹洺4 小时前
Java-Spring入门指南(二十六)Android Studio下载与安装
java·spring·android studio
JAVA学习通4 小时前
JDK高版本特性总结与ZGC实践
java·jvm·算法
Lxinccode4 小时前
python(48) : 命名截图[Windows工具(3)]
开发语言·python·截图·快速截图
cxyxiaokui0014 小时前
JDK 动态代理 vs CGLIB:原理、区别与 Spring AOP 底层揭秘
java·后端·spring
骁的小小站4 小时前
Learn C the Hardway学习笔记和拓展知识(一)
c语言·开发语言·c++·经验分享·笔记·学习·bash
代码充电宝5 小时前
LeetCode 算法题【中等】189. 轮转数组
java·算法·leetcode·职场和发展·数组