当前位置: 首页 > news >正文

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,下载完成直接安装

C:\Users\asus>go version
go version go1.25.0 windows/amd64

2.粗略熟悉一下命令行

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

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

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

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

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 reportbuild       compile packages and dependenciesclean       remove object files and cached filesdoc         show documentation for package or symbolenv         print Go environment informationfix         update packages to use new APIsfmt         gofmt (reformat) package sourcesgenerate    generate Go files by processing sourceget         add dependencies to current module and install theminstall     compile and install packages and dependencieslist        list packages or modulesmod         module maintenancework        workspace maintenancerun         compile and run Go programtelemetry   manage telemetry data and settingstest        test packagestool        run specified go toolversion     print Go versionvet         report likely mistakes in packages

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

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

3.简单分析程序包内容

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

4.Go与安卓的关系

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

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

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

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

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: example/hello importsrsc.io/quote: module rsc.io/quote: reading https://mirrors.aliyun.com/goproxy/rsc.io/quote/@v/list: 403 ForbiddenD:\code\go_code\sd>go env -w GOPROXY=https://mirrors.cloud.tencent.com/go/,directD:\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/

朋友们,再会!

http://www.dtcms.com/a/485775.html

相关文章:

  • GraphRAG 与 Neo4j 社区版:能力边界与适用场景学习总结
  • 【OC】计算器的仿写
  • 东莞工厂网站建设网站建设要买哪些软件
  • 5-3〔OSCP ◈ 研记〕❘ SQL注入攻击▸基于错误的SQLi 盲注SQLi
  • AWS Redshift 数据仓库完整配置与自动化管理指南
  • 《C++ 手搓list容器底层》:从结构原理深度解析到功能实现(附源码版)
  • 成都那家做网站好注册网约车主需要什么条件
  • Wireshark:HTTP、MQTT、WebSocket 抓包详细教程
  • Linux内核架构浅谈36-Linux页帧描述:struct page数据结构的设计与关键成员
  • 道路车辆功能安全标准(FuSa)基础(七)
  • 【Linux系列】解码 Linux 内存地图:从虚拟到物理的寻宝之旅
  • vue+spring boot 利用ffmpeg实现大视频切片
  • 长沙手机网站建设公司wordpress 做笔记
  • Java基于Web3j调用智能智能合约案例
  • 关于联想ThinkCentre M950t-N000 M大师电脑恢复预装系统镜像遇到的一点问题
  • 有关优化网站建设的书籍深圳网络推广方法
  • 招聘网站做竞品分析南昌网站seo多少钱
  • 【实战总结】Docker部署MySQL完整教程:附docker-compose模板与常用命令大全
  • C++ string类的使用
  • 【数据结构】:C 语言常见排序算法的实现与特性解析
  • C语言数据结构:算法复杂度(1)
  • 16km无人机WiFi中继图传模块,高速传输画质高清不卡顿
  • Linux系统C++开发环境搭建工具(二)—— etcd 使用指南
  • AI+大数据时代:如何从架构到生态重构时序数据库的价值?
  • 小小 Postgres,何以替代 Redis、MongoDB 甚至 ES?
  • Win10正式谢幕!附最后更新版本
  • 前端自动翻译插件webpack-auto-i18n-plugin的使用
  • 山东官方网站建设沧州网络推广渠成网络
  • 贺州网站建设公司家装设计需要学什么软件
  • 网站在百度上搜索不到丽水山耕品牌建设网站