GO
文章平均质量分 79
生活热爱就好
这个作者很懒,什么都没留下…
展开
-
go语言--包
go语言的源码组织形式是包,go语言的main函数只有在main包里面才可以被系统执行。golang中的包和文件夹是对应关系,一般是创建在gopath目录下。golang中的一个包需要引用另一个包,必须使用import关键字进行导入才可以使用。golang中的任何源代码文件必须属于某个包,第一行代码是package pacakageName.。包是多个Go源码的集合,是一种高级的代码复用方案。Go将一些常用的方法封装成一个个系统包,这些包称为标准库。包定义(不包含目录路径)go语言的包借助了目录树的原创 2021-01-25 18:00:11 · 443 阅读 · 0 评论 -
golang打包、解包、压缩、解压操作
go语言官方标准库提供tar库,tar是一种打包格式,但不对文件进行压缩,所以打包后的文档一般远远大于zip和tar.gz,因为不需要压缩的原因,所以打包的速度是非常快的,打包时CPU占用率也很低。tar的目的是方便文件的管理(把分散的文件放在一个文件中),主要是通过tar.Reader读取tar包,通过tar.Writer写入tar包。单个文件操作1.单个文件打包(在当前目录下执行)(1)准备要打包当前路径下的文件(2)打包后的文件名(3)创建一个文件,用来保存打包后的文件(qwer.ta原创 2021-01-23 18:30:35 · 3046 阅读 · 1 评论 -
golang判断变量的类型
判断container的类型打印其中的元素之前,正确判断变量的类型,使用“类型断言”表达式。value, ok := interface{}(container).([]string)ok是bool类型得,它代表判断的结果true或者false。如果是true,那么被判断的值将会被自动转换为[]string,并赋值给变量value,否则value将被赋值为nil。ok也可以没有,断言表达式的结果,可以只赋给一个变量value,但是这种情况,如果判断为否就会引发异常,panic(运行时抛出的异常),原创 2021-01-21 14:02:23 · 4341 阅读 · 1 评论 -
作用域
程序实体的访问权限有三种:包级私有的、模块级私有的和公开的。包级私有和模块级私有访问权限对应的都是代码包代码块,公开的访问权限对应的是全域代码块。然而,这个颗粒度是比较粗的,我们往往需要利用代码块再细化程序实体的作用域。情况一:我在一个函数中声明了一个变量,那么在通常情况下,这个变量是无法被这个函数以外的代码引用的。这里的函数就是一个代码块,而变量的作用域被限制在了该代码块中。一个程序实体的作用域总是会被限制在某个代码块中,而这个作用域最大的用处,就是对程序实体的访问权限的控制。一个变量与其外层代码块原创 2021-01-19 14:22:45 · 75 阅读 · 0 评论 -
golang 命令源码文件
一、简介1.命令源码文件是独立程序的入口2.命令源码文件属于main包,包含无参数无结果的main函数3.可通过go run 命令运行,可接收命令行参数4.main函数执行的结果意味着当前程序云心的结束5.同一个代码包不要放多个命令源码文件、6.命令源码文件与库源码文件也不要放在同一个代码包7.命令源码文件构建后(go build)生成可执行文件(executable file),构建后生成位置在命令执行目录,在windows中就是扩展名为exe的文件,在linux中一般无扩展名8.可执行文原创 2021-01-18 23:29:24 · 361 阅读 · 2 评论 -
库源码文件
简介库源码文件是不能被直接运行的源码文件,它仅用于存放程序实体,这些程序实体可以被其他代码使用(遵从你Go语言规范),这里的其他代码是指与被使用的程序实体在同一个源码文件内,也可以在其他源码文件,甚至其他代码中。程序实体是变量、常量、函数、结构体和接口的统称。必须先声明程序实体,然后再去使用,程序实体的名字被统称为标识符,标识符可以是任何Unicode编码可以表示的字母字符、数字以及下划线"_",但是首字母不能是数字。代码包声明1.同目录下的源码文件的代码包声明语句要一致。如果目录中有命令源码文件,原创 2021-01-18 15:33:25 · 427 阅读 · 0 评论 -
vscode的插件 git graph
1.安装如果安装后,没有下图图标可以重新打开vscodegit graph页面,可以查看各个分支的commit历史。git graph可以从下面进入原创 2021-01-11 01:42:36 · 8040 阅读 · 2 评论 -
gin(四)多数据格式返回请求结果
一个完整的请求包含请求、处理请求和结果返回三个步骤,在服务器端对请求处理完成以后,会将结果返回给客户端[]byte和string请求返回数据格式为[]byte,通过context.Write方法写入[]byte切片数据类型指定8090端口JSON除了使用contesxt.Writer对象返回[]byte和string类型的数据意外。在项目开发中,JSON格式规范使用的更为普遍。gin为了方便开发者更方便使用该框架进行项目开发,直接支持将返回数据组装成 JSON格式进行返回gin框架中的co原创 2020-12-14 21:57:15 · 1649 阅读 · 0 评论 -
gin(三)请求参数绑定与多数据格式处理
如果每条数据都要执行之前那种PostForm,FullPath类似的单一的功能的语句,会有很多重复的代码。一次只能获取一个表单数据,开发效率较慢。Gin框架提供给开发者表单实体绑定的功能,可以将表单数据与结构体绑定,把表单数据映射成表单实体表单实体绑定使用PostForm这种单个获取属性的字段的方式,代码量较多,需要一个一个属性进行获取。而表单数据的提交,往往对应着完整的数据结构体定义,其中对应着表单的输入项。gin框架提供了数据结构体和表单提交数据绑定的功能,提高表单数据获取的效率。创建了一个Use原创 2020-12-14 18:58:32 · 1035 阅读 · 0 评论 -
gin(二)请求和参数解析
1.HTTP请求类型http是一种网络协议,常见情况是访问一个网站,从网站下下载一个文件等都是采用http请求的方式,有几种请求类型。http协议中一共定义了八种方法或者称之为类型来表明对请求网络资源的不同操作方式:分别是OPTIONS、HEAD、GET、POST、PUT、DELETE、TRACE、CONNECT等几种2.Handle通用处理engine中可以直接进行HTTP请求的处理,在engine中使用Handler方法进行http请求的处理。Handle方法包含三个参数第一个参数表示要处理的原创 2020-12-13 00:16:25 · 1708 阅读 · 0 评论 -
VScode如何调试
1.修改配置文件 lauch.json{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "con原创 2020-12-09 00:51:01 · 2322 阅读 · 0 评论 -
Golang之http server
基于HTTP构建的网络应用包括两个端,即客户端(Client)和服务端(Server)。两个端的交互行为包括从客户端发出request、服务端接受request进行处理并返回response以及客户端处理response。所以http服务器的工作就在于如何接受来自客户端的request,并向客户端返回respond。典型的http服务端处理流程:服务器在接收到请求时,首先会进入路由(router),这是一个Multiplexer,路由的工作在于为这个request找到对应的处理器(handler),处理原创 2020-12-09 00:06:40 · 3311 阅读 · 0 评论 -
Go Web框架 Gin路由(一)
简介Gin是目前应用比较广泛的Golang web框架。Gin提供了web开发的一些基本功能。比如路由,中间件,日志,参数获取等。Gin的路由功能是基于https://github.com/julienschmidt/httprouter 这个项目实现的。它是一个类似于martini但拥有更好性能的API框架,由于使用了httprouter,速度提高了40倍。gin中文文档,地址https://gin-gonic.com/zh-cn/docs/Gin安装和使用下载并安装go get -u原创 2020-12-08 17:36:56 · 803 阅读 · 0 评论 -
规范的go项目使用过程
1.登录到自己的文档服务器(ssh登录到linux环境 前面的文章有写)2.新建项目文件夹http:bash命令 mkdir http3.新建文件 main.go4.写代码5.创建modgo mod init 项目名6.把包拉到modgo get -u -v完成后会出现 sum...原创 2020-12-08 14:20:13 · 93 阅读 · 0 评论 -
整型
Go语言基础之基本数据类型除了基本的整型,浮点型,布尔型,字符串外,还有数组,切片,结构体,函数,map,通道(channel)等,Go语言的基本类型和其他语言大同小异。基本数据类型整型整型分为以下两大类:带符号和不带符号int8 int16 int32 int64对应有符号整型uint8对应byte uint16 对应short uint32 uint64对应long型类型描述uint8无符号8位整型(0到255)uint16无符原创 2020-12-07 23:42:46 · 2147 阅读 · 0 评论 -
常量和iota
常量相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。常量的声明和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。const P=3899const e=890声明了p和e这两个变量之后,在整个程序运行期间它们的值都不能再发生变化了多个常量也可以一起声明:const ( p=9800 e=89099)const同时声明多个常量时,如果省略了值则表示和上面一行的值相同,例如:const( n1原创 2020-12-06 16:57:08 · 142 阅读 · 0 评论 -
变量赋值
常见:如果是声明全局变量,使用批量声明的方式;如果是声明局部变量,使用短变量声明的方式(只能在函数里面用)1.在函数里面使用变量先声明后赋值,复制后必须使用,不然会报错2.在全局变量里面 可以声明不使用 可以编译通过3.可以在声明变量的时候为其指定初始值。var 变量名 类型=表达式举个例子var name string="caa"var age int=18或者一次初始化多个变量var name,age="qomo",184.类型推导(根据值来推导变量是原创 2020-12-06 15:16:48 · 2216 阅读 · 0 评论 -
变量声明
1.所有的.go文件都有package声明,声明这个文件属于哪个包,文件属于main包,最终会生成 可执行文件,如果你声明一个包是给别人用的,比如你专门写了一个包用来连接mysql,别人需要用你的代码去连接mysql, 这个时候就是一个工具类。所以一种是编译成可执行文件(main),一种是工具包2.import是导入包,包括导入内置的包,第三方的包,要用双引号3.如果你要编译成可执行文件,就一定要有main函数,它是函数的入口,没有参数也没有返回值。4.在函数的外面只能放标识符(变量 常量 .原创 2020-12-06 14:11:23 · 293 阅读 · 0 评论 -
编写第一个go程序(二)
1.写代码1.进入vscode界面,打开文件夹 GO当中的src设置完成后,重启生效打开你放代码的文件夹新建一个文件夹新建文件2.编译使用的命令:go build 默认生成的文件就是项目的名字go bulid -o hello.exe hello.exe就是你自定义生成exe文件名字(mac上面就不用加exe)1.在项目目录下执行 go bulid(推荐)其实就是cd到了目录下go build 后windows平台多一个exe mac平原创 2020-12-06 11:15:48 · 251 阅读 · 2 评论 -
配置VSCODE的GO开发环境(自动格式化代码 自动导包)
1.安装go扩展模块2.安装GO开发包Windows系统按Ctrl+Shift+P,Mac系统按Command+Shift+P,在弹出来的框框中输入>go:install,下面会自动搜索相关命令,我们选择Go:Install/Update Tools这个命令在终端输入go env 发现是国外的镜像解决方法:Go 1.13 及以上(推荐)打开你的终端并执行:go env -w GOPROXY=https://goproxy.cn,direct完成。再去VScode里面原创 2020-12-05 00:37:41 · 9797 阅读 · 0 评论 -
GO语言报错 go:4:7: illegal character U+00A0
原因:开发接入三方时,复制网站中的代码到IDE中报错提示如图解决方法百度之后发现空格跟空格也是不一样的,分类如下\u00A0:不间断空格,主要用在office中,让一个单词在结尾处不会换行显示\u0020:半角空格(英文符号),代码中常用的\u3000:全角空格(中文符号),中文文章中使用因此我们这里的解决就是将这些空格替换,首先选中单个报红的空格(我们无法看出分别,但编辑器可以),Ctrl+R 进行全局替换正常代码用的空格即可...原创 2020-12-05 18:08:47 · 1442 阅读 · 0 评论 -
编译环境 Golang开发环境 vscode+git
创建编译机器链接git公钥1.登录自己的编译环境ssh liyingzhi@192.168.11.112密码:china…2.生成ssh密钥对 后面会提示你输入一个文件位置 这里直接回车ssh-keygen -t rsa -C "liyingzhi" -q -N " "3.拷贝公钥到自己git server账号中cat 显示了公钥的内容 然后将它复制到公司的文档空间 自己的git sever账号中cat ~/.ssh/id_rsa.pub2.VSCO原创 2020-12-05 14:44:55 · 357 阅读 · 0 评论 -
了解Go语言(一)
go语言标签1.google开源2.编译型语言解释型语言(python php):代码—》虚拟机—》处理器编译型语言(c go):代码 —》处理器优势:少一个环节,速度较快支持交叉编译、编译快速开发效率高执行性能好天生支持并发(go语言写的程序,编译成二进制执行文件,放到服务器上去运行的时候,1.5版本之后,默认是跑满整个CPU,有8个核就跑满8个核,有16个核就跑满16个核)3.21世纪的c语言学习博客:https://www.liwenzhou.com/go语言开发环境搭原创 2020-12-03 01:02:18 · 230 阅读 · 0 评论