![](https://img-blog.csdnimg.cn/5d126422ee1a4bc9b49d1a3452f108a8.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Go基础知识(完整版)
文章平均质量分 66
go语言基础知识
量化Mike
青壮年程序员一枚,专注于Python算法、Java大数据开发、Go区块链,爱好量化、C端产品开发。
爱好分享,欢迎骚扰!!!
展开
-
【Go语言基础】Go语言中的map集合详细使用(附带源码)
map声明变量名 := make(map[key类型]value类型)该声明方式,如果不初始化map,map也不等于nil。var 变量名 map[key类型] value类型使用var关键字声明map,未初始化的map的默认值是nil。nil map不能存放键值对。如果要使用map存储键值对,必须在声明时初始化,或者使用make()函数分配到内存空间。原创 2023-02-15 08:59:22 · 1202 阅读 · 1 评论 -
【Go语言】Go进行 无密码zip 文件的压缩和解压以及带密码zip文件压缩和解压(详细版)
Go 和许多其他编程语言一样,支持从标准库中直接进行 zip 文件的压缩和解压。在 Go 中利用标准库包完成 zip 文件的创建和提取。golang zip包的解压有官方的zip包(archive/zip),但是官方给的zip解压包代码只有解压不带密码的zip包,如果我们要解压带密码的zip就做不了, 解决方案:使用。原创 2023-01-29 16:33:04 · 1669 阅读 · 3 评论 -
【GO语言基础】Go依赖管理经历了3个阶段:早期GOPATH、中期Go Vendor、 最新Go Module以及Go Mod九条操作命令:go mod init、go mod tidy
vendor文件其实是一个目录,所在的该项目使用依赖包会以副本形式放在vendor目录下。go mod edit:编辑 go.mod 文件,选项有 -json、-require 和 -exclude。可以在项目目录下看到。go mod download:下载项目依赖的 modules 到本地 Cache。面对早期GOPATH的依赖管理方式存在的弊端出现了Go Vendor的解决方案。初始化项目的go.mod文件:go mod init 项目名称。go mod vendor:生成 Vendor 目录。原创 2022-12-27 18:00:41 · 870 阅读 · 1 评论 -
【Flutter】更改visual Studio为2019以后版本解决 -Unable to find suitable Visual Studio toolchain. Please run
这里需要安装Visual Studio Professional 版本号 >= 2019,我的版本是2017不符合,只能进行卸载然后重装。运行桌面版时底层需要安装 Window SDK 10,需要注意的是 Visual Studio版本必须 大于等于 2019。Visual Studio版本必须 大于等于 2019,个人原始是2017版本,因为用于移动端开发,所以未进行更换。在创建Flutter项目的时候,存在环境中底层组件 Windows 10 SDK的缺失。.........原创 2022-08-16 21:09:14 · 4862 阅读 · 1 评论 -
【Flutter】初识Flutter项目之使用Android Studio创建第一个Flutter项目(详细步骤)
代码】【Flutter】初识Flutter项目之使用Android Studio创建第一个Flutter项目(详细步骤)原创 2022-08-11 21:21:15 · 2654 阅读 · 2 评论 -
【flutter】flutter SDK的下载与安装以及如何检测Flutter SDK 安装成功
输入flutter doctor命令检查flutter开发环境。输入flutter --version命令查看版本。点击你需要下载的版本:【选择稳定版】命令行打开高级环境变量配置窗口。选择系统变量针对所有的用户。原创 2022-08-11 10:01:37 · 3036 阅读 · 1 评论 -
【Docker】Windows 10专业版下的安装Docker并配置Docker本地环境(注意: Win7/Win8/Win10 家庭版需要通过Docker Toolbox来安装)
笔者个人喜欢在Windows上开发和调测,将容器托管到Linux。Windows安装包下载链接: 【Docker Desktop for Windows】使用Docker for Windows需要启用Hyper-V功能。以下是系统要求:● Windows 1064位:Pro、Enterprise或Education(Build 14393或更高版本)。● 在BIOS中启用虚拟化。通常,默认情况下启用虚拟化。这与启用Hyper-V不同。● 支持CPU SLAT的功能。● 至少4GB的RAM。原创 2022-03-01 21:43:06 · 2606 阅读 · 2 评论 -
【Go语言6-2】完好Go语言不能缺少的Go工具以及详细介绍go build、go get、go install、go doc用法
Go语言提供了标准工具,利用这些工具,工程师可以进行下载、查询、构建、格式化、测试、安装代码包等操作,这组标准工具称为Go工具(Go tool)。Go工具是一组命令集,可以实现几组重要的功能,比如包管理器、构建系统、测试驱动等。原创 2022-02-06 15:49:55 · 1087 阅读 · 0 评论 -
【Go语言6-1】学习Go语言必须了解的五种导入包的方式以及作用
一、包及Go工具包(package)是Go语言中实现代码复用的重要手段。包的存在可以让我们只关心包中的有用的函数。Go语言自带100多个标准包,这些包使Go语言用起来便捷,进行服务器端、Web端编程几乎不需要第三方框架就可以开发。可依据函数、接口、方法之间的关联性来对包进行划分,关联性高的功能会放在一个包内,便于理解和后续修改维护。这种模块化特性,允许我们在不同的项目内甚至世界范围内共享和复用代码。指定编译的速度快是Go语言的优势:导入方便 : 每个源码文件用到的导入文件都在开头显式地列出来,这样原创 2022-02-06 15:18:11 · 923 阅读 · 0 评论 -
【Go语言5-1】如何浅显理解Go语言并发编程中的协程goroutine运行机制
在上一篇幅中介绍了基础内容:1、Go语言中关于函数定义、闭包函数、作用域、defer关键字详解2、关于Go语言中的方法详解以及不提供继承机制的解决方案3、关于Go语言中的接口与空接口解读4、关于Go语言中的反射功能解读以及反射包reflect的相关API调用前一篇中我们知道Go语言没有继承,通过struct和方法的组合来实现。此外, Go语言作为一个静态语言,接口的出现让接口值呈现动态,可以在程序执行时候再确定动态类型和动态值。并发编程在CPU的早期,主要目标是提升处理器的处理频率。在提升频原创 2022-02-05 20:45:49 · 741 阅读 · 0 评论 -
【Go语言04-4】关于Go语言中的反射功能解读以及反射包reflect的相关API调用
反射(reflect)是Go语言提供的动态获取对象类型及结构信息的方式。Go语言中的反射可以帮助处理未知类型,但是使用次数非常少。反射的包为 reflect包:包含两个核心类型: reflect.Value 和 reflect.Type。前者用于存储任意值,后者用于存储任意类型。一、反射的使用二、反射的缺点反射能实现动态获取对象类型,但是不建议经常使用,因为会导致代码自身的可读性较差。反射代码的写法可读性比较差,不利于后续的运维。反射的实现比较复杂,所以反射执行得比较慢,会影响程序的整体性能原创 2022-02-05 14:50:23 · 464 阅读 · 0 评论 -
【Go语言04-3】关于Go语言中的接口与空接口解读
接口即约定,通过interface关键字定义了接口以后,凡是满足定义的都被认定为该接口的实现。这是隐式实现方式,与Java通过implements关键字显式实现是完全不同的。定义了一个接口,且存在某个类型完全满足这个接口的定义,那么这个类型就实现了这个接口,不需要单独使用某个关键字去说明。在GO语言中这种接口隐式实现方式允许在具体类型已经存在的情况下再去定义接口可以先有类型再有接口,不会破坏原有定义。一、接口使用接口定义了需要被实现的一组函数方法的抽象集合,如果需要实现某个接口就必须实现该接口的所有原创 2022-02-05 13:59:36 · 545 阅读 · 0 评论 -
【Go语言04-2】关于Go语言中的方法详解以及不提供继承机制的解决方案
Go语言没有继承,但是却有方法,方法是Go语言面向对象的主要特征。Go语言的方法是关联到类型的,且其存在与类没有任何关系,仅仅和类型有关系。Go语言的方法定义非常像函数,仅仅是在函数名称前面定义了方法接受者或者叫接收器。type Retangle struct{ w,h float64}func (r Rectangle) area() float64{ return r.w * r.h}Go语言的方法定义非常像函数,仅仅是在函数名称前面定义了方法接受者或者叫接收器。本例定义了r,它是原创 2022-02-05 12:57:42 · 704 阅读 · 0 评论 -
【GO语言04-1】Go语言中关于函数定义、闭包函数、作用域、defer关键字详解
Go语言中的功能封装是通过函数进行的,不同结构体之间可以通过接口来进行统一,再结合反射特性就可以开发大型的、复杂的项目。一、函数的定义Go语言是支持面向对象编程的,但是函数才是Go语言的基本组成元素。Go语言的函数分为具名函数、匿名函数//具名函数func main(a int) int { return a * a}main(11)//匿名函数var nua = func(a int) int { return a * a}nua(12)二、闭包匿名函数可以赋值给一个变量原创 2022-02-04 23:07:30 · 821 阅读 · 0 评论 -
【Go语言】如何使用yum源在Centos7上进行Go语言环境安装
一、Centos7中安装go安装go编译器命令:yum -i install golang二、查看go版本go version三、设置环境变量在/root/.bashrc配置中设置环境变量,编辑/root/.bashrc文件:vim /root/.bashrc在文件中添加如下内容:export GOPATH=/opt/gopathexport GOROOT=/usr/lib/golangexport GOBIN=$GOROOT/binexport PATH=$PATH:$G原创 2022-02-04 19:18:54 · 2055 阅读 · 2 评论 -
【Uniapp框架】通过UniClioud云开发熟悉 Serverless(无服务器)模式
一、认识 uniCloud 开发uniCloud 是 DCloud 联合阿里云、腾讯云,为开发者提供的基于 serverless 模式和 js 编程的云开发平台。uniCloud 官网地址优点:1、uniCloud 提供了 uni-id,无需自己开发账户体系,即可拥有并使用登录/注册/修改密码/角色权限体系/token 管理等基本功能。2、使用 JavaScript 就可以操作云数据库,实现数据的获取和存储,让开发者更专注业务本身,有利于开发者更好地搞定前后台整体业务。3、如果不发布 H5 版,原创 2022-02-02 23:43:00 · 2005 阅读 · 0 评论 -
【go语言】解决关于go文件进行编译时找不到下载包问题(不要再使用Gopath进行修改,而是随主流使用go.mod文件)
随着go语言的不断完善,模块的使用可能会移除对GOPATH和go get命令的支持。我们可以尝试的使用mod文件,不再将代码仅仅是存放在GOPATH/src目录之中,而是我们自定义工作目录都可以顺利导包。我们需要在那个目录下创建一个go.mod文件,从文件目录中运行go命令。文章目录一、模块概念介绍1.1 认识go.mod文件1.2 go.mod文件的模块引入、替换、排除二、go.mod文件相关的命令三、常见go.mod管理的工程创建流程1、执行`go mod init` 命令2、如果你工程中存在一些原创 2022-01-25 17:48:27 · 3779 阅读 · 1 评论 -
【Uniapp框架】快速开发自己一款APP应用,如何将Uniapp项目快速打包成APP应用
当我们使用uniapp框架开发应用,前端与后端的代码都准备OK!最关键的一步就是开始打包我们的应用产品,最常见的形式:小程序、安卓App、苹果App。今天我们来详细了解一下安卓App应用的快速打包流程:打包分为云打包与本地打包,云打包是由Dcloud云端进行打包,云端打包不用担心代码丢失复制,也存在两种方式:传统打包、安心打包。本地打包(也叫做离线打包)其实是由本地生成的App资源文件,需要在对应的原生安卓开发环境或者原生IOS开发环境进行资源加入再进行APP生成,因为加入了原生SDK文件,最终打包原创 2022-01-22 22:21:58 · 4498 阅读 · 1 评论 -
【区块链时代】智能合约编程语言Solidity合约文件讲解
合约文件一般包括以下:1、版本申明,告诉编译器使用那个版本编译器来编译这个合约文件。2、import :指明合约文件会导入那些合约文件3、合约:包含状态变量、函数、结构类型、事件、函数修改器4、代码注释原创 2022-01-19 19:59:56 · 10982 阅读 · 0 评论 -
【区块链时代】如何用Python实现区块链中的区块结构(快速入手01)
区块链的结构用Python代码如何去实现。节点之间的通信利用Flask进行实现挖矿、节点查询、交易新增。原创 2022-01-18 19:11:19 · 3232 阅读 · 0 评论 -
【Linux操作】使用zip 压缩命令打包程序为.zip压缩包并进行解压缩
Linux 上常用的压缩/解压工具,主要介绍 zip,tar 的使用。一、Linux系统上常见压缩格式常用的压缩包文件格式。在 Windows 上最常见的不外乎这两种 .zip,.7z 后缀的压缩文件。而在 Linux 上面常见的格式简单介绍如下:原创 2022-01-15 23:52:46 · 9772 阅读 · 0 评论 -
【Vue框架】 Vue框架的数据双向绑定与Vue-cli创建第一个vue项目并启动
脚手架工具是方便快速创建vue项目的工具,创建的vue项目属于需要编译成js的vue文件,与直接引入vue.js文件的html文件有一定的差异。原创 2022-01-12 00:06:37 · 347 阅读 · 0 评论 -
【Vue框架】刚入手Vue框架必须了解.vue文件与引入vue.js的文件区别
在html文件中引用vue.js和直接创建.vue文件有什么差别?原创 2022-01-10 16:05:45 · 3287 阅读 · 0 评论 -
【Git工具篇00】 Git 与 GitHub 简介及上手操作(十分详细简单带图示操作)
文章目录Git 与 GitHub 简介一、Git 与 GitHub 的来历二、在 GitHub 上创建仓库三、安装 Git添加 SSH 关联授权(三步ok)一、生成公私钥二、将公钥内容复制三、将公钥复制到github上克隆 GitHub 上的仓库到本地一、克隆仓库二、克隆到本地仓库文件说明Git 与 GitHub 简介一、Git 与 GitHub 的来历Linux 之父 Linus 在 1991 年创建开源的 Linux 操作系统之后,多年来依靠全世界广大热心志愿者的共同建设,经过长足发展,现已成为世原创 2022-01-09 17:43:56 · 98 阅读 · 0 评论 -
【Git工具篇01】Git仓库的三大区域及简单操作(十分详细简单带图示操作)
本篇文章主要讲述: Git 仓库的三大区域 修改工作区 将工作区的修改添加到暂存区 从暂存区撤销修改到工作区 查看提交历史 配置个人信息 完成一次提交 版本回退 处理提交时间线分叉问题 使用 git reflog 命令查看本地仓库版本变化原创 2022-01-09 14:51:42 · 1085 阅读 · 0 评论 -
【Go异常05】view duplicate names for ‘xxxxxx‘
解决Go语言运行时命名出现异常:view duplicate names for 'xxxxx ’异常:view duplicate names for ‘xxxxx’原创 2021-12-17 12:20:55 · 339 阅读 · 0 评论 -
【Go异常04】command-line-arguments xxxxx undefined xxxx
同级别目录运行:针对根目录下除了main函数入口文件外同级引用文件的运行异常解决方案文章目录异常: command-line-arguments xxxxx undefined xxxx一、异常:command-line-arguments xxxxx undefined xxxx二、异常原因1、基础知识说明:2、报错原因修改方法原创 2021-12-14 23:08:04 · 795 阅读 · 0 评论 -
【Go异常03】package srcProduct is not in GOROOT
不同级别目录运行:针对根目录下含有子包的目录结构运行异常解决方案异常: package srcProduct is not in GOROOT异常:main.go:4:2: package src/Product is not in GOROOT (C:\CodeInterpreter\Go\src\src\Product)main.go:5:2: package src/User is not in GOROOT原创 2021-12-14 23:06:20 · 768 阅读 · 0 评论 -
【Go基础08-1】工程管理之工作区介绍
1.工作区介绍Go语言中将不同的功能放在不同的函数中实现,主函数(main( ))可以直接调用。这样结构非常的清晰,也非常方面代码的管理。当进入项目中,代码量比较大。如果我们把所有的代码都写在main( )函数中,会出现什么样的情况呢?代码混乱,非常不容易管理。但是现在我们面临了另外一个问题就是:我们所有自己定义的函数都写在了一个文件中,如果我们做的项目代码量越来越多,那么该文件会变的非常臃肿,代码也会变得非常难管理。所以,我们在开发中,除了要定义函数,同时还要将代码放在不同的文件中。例如:我们定义了原创 2021-12-13 20:15:51 · 242 阅读 · 0 评论 -
【Go异常02】command-line-arguments xxx.go:10:4: cannot assign to a (declared const)
异常2: cannot assign to a (declared const)异常:command-line-arguments .\01 常量定义.go:10:4: cannot assign to a (declared const)异常原因: 变量: 程序运行期间,可以改变的量,变量声明需要var 常量: 程序运行期间,不可以改变的量,常量声明需要const修改方法: 去掉const或者将修改该常量语句删去常量介绍程序运行期间,不可以改变的量使用const创建常量,建议常原创 2021-12-13 13:13:38 · 319 阅读 · 0 评论 -
【Go异常01】command-line-arguments constant -10 overflows uint
异常1:command-line-arguments constant -10 overflows uint原创 2021-12-11 21:43:26 · 516 阅读 · 0 评论