计算机语言---go语言
文章平均质量分 65
学习go语言过程中技术积累
头前一点白
工作,学习,生活,娱乐。正在学习平衡这些,做努力向上的人。
展开
-
Centos7下将vim打造成Golang的IDE
前言后端开发绕不过的就是Linux,想在Linux下编写Go语言进行开发,我想最好用的IDE应该就是Vim了吧。今天费点时间,将自己的Vim打造成Golang专用的IDE,Let do it!环境准备将你的vim升级到8.0以上因为要使用vim-go 的原因,它必须要求vim是8.0以上。删除旧版本:yum remove vimCentos7编译安装vim81.先下载依赖yum install gcc ncurses ncurses-develyum -y install gi原创 2020-08-17 15:29:59 · 1351 阅读 · 0 评论 -
Go Module使用教程
文章目录前言Go Module是什么?GO111MODULE创建一个新模块go mod 命令替换包go get 升级go mod vendor前言在Go1.11发布之后,其中最重要的变化之一是go module.刚开始接触总是对它不知所以然,在实践的过程中,感觉搞不清楚它是干嘛的,今天看了很多文章,记录一下Go Modules的使用。Go Module是什么?总结来说,它是一个项目依赖解决方案。原来我们把包都放在GOPATH里面,使用类似命名空间的包路径区分包,但是这种包依赖可能会造成生产环境原创 2020-08-10 22:10:07 · 1579 阅读 · 0 评论 -
记录Go iris v12安装的坑(cannot find package “github.com/russross/blackfriday/v2“)
前言最近学习go 的框架iris,然后就去iris的github去学习,文档写到很详细。不过,安装这一步,真的是坑啊!!!最近的版本是v12,根据wiki,安装也非常简单是这样的(下图),是不是非常简单?还很贴心的给了GOPROXY,可是!!!当go get之后,就出现两个cannot find package,一个是github.com/russross/blackfriday/v2另一个是github.com/CloudKit/jet/v4然后呢,无论你怎样去go get,或者删掉iri原创 2020-08-10 10:56:48 · 3895 阅读 · 6 评论 -
使用Goland写代码,最后如何在Centos7Linux环境下去部署运行?
前言Go语言入门菜鸡,一直在用Goland写代码,因为vim配置Go的开发环境简直不要太难,放弃了。一直很困惑,我如何在Windows下编写代码,然后再拿去Linux下去部署运行?原来一直以为需要把代码弄过去,然后编译,运行,不懂得交叉编译这回事,今天搞了一下,做个记录。编译当我们在Windows上用IDE把程序写好之后,想要打包部署到Linux上运行。使用cmd切换到当前项目目录下(main.go目录下),或者使用Goland的Terminal,然后执行以下命令:$ set GOARCH原创 2020-08-07 11:42:23 · 592 阅读 · 0 评论 -
《剑指offer》---Go语言实现
文章目录数组中重复的数字数组中重复的数字题目描述:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3解法一:简单解法:因为数字范围一定在0-n-1之间,表示可以使用哈希表来解决这个问题。建立一个数组切片number,长度为n,下标则表示0-n-1,初原创 2020-08-04 00:30:50 · 705 阅读 · 0 评论 -
Go语言实现简易记事本程序的增删改查操作,数据传输使用Json格式
Go语言实现记事本数据库操作实现增删改查数据传输使用JSon格式使用Postman进行接口测试这个记事本程序只是简易的实现,并没有实现前端的html界面内容,也没有使用框架,只是为了熟练GO语言Web操作而进行的小练习。首先在Mysql数据库建名为test的数据库,名为note的数据表,字段有三个,noteid,notename,content.go语言数据库引擎使用go-sql-driver.进行安装go get -u github.com/go-sql-driver/mysq原创 2020-08-03 21:42:08 · 597 阅读 · 0 评论 -
Go官方指南---《Web爬虫练习》
练习:Web 爬虫在这个练习中,我们将会使用 Go 的并发特性来并行化一个 Web 爬虫。修改 Crawl 函数来并行地抓取 URL,并且保证不重复。提示:你可以用一个 map 来缓存已经获取的 URL,但是要注意 map 本身并不是并发安全的!package mainimport ( "fmt" "sync")type Fetcher interface { // Fetch 返回 URL 的 body 内容,并且将在这个页面上找到的 URL 放到一个 slice 中。 Fe.原创 2020-07-27 17:58:20 · 402 阅读 · 0 评论 -
Go语言爬虫出现403问题解决
前言最近在做慕课网上《Google工程师带你深度了解Go语言》中的项目,一个单任务版的爬虫。现在爬取了网页信息,解析了用户页面之后,出现了错误,如下Fetcher:errorfetching url http://album.zhenai.com/u/XXXX:wrong status code:403代码如下:resp, err := http.Get(url)现在将解决的过程...原创 2020-04-25 10:22:54 · 1853 阅读 · 3 评论 -
Go语言笔记---goroutine
文章目录并发轻量级线程(goroutine)---根据需要随时创建的“线程”通道---在多个goroutine间通信的管道并发并发是指在同一时间可以执行多个任务。Go语言通过编译器运行时,从语言上支持了并发的特性。Go语言的并发通过goroutine特性完成。goruntine类似于线程,但是可以根据需要创建多个goroutine并发工作。goroutine是由Go语言的运行时调度完成,...原创 2020-04-21 07:29:32 · 259 阅读 · 0 评论 -
用Sublime Text3创建一个完整的go项目
用Sublime Text3创建一个完整的go项目1.首先在GOPATH目录下的src目录中创建项目文件夹gotest,准备将它作为一个包供外部程序使用,创建文件main.go,编写程序main.go:package gotest //文件名和包名一致import ( "fmt")func Hello() { //想要被外部包使用,带头字母大写 fmt.Println("Hell...原创 2020-04-19 07:48:32 · 993 阅读 · 0 评论 -
Go语言笔记---反射学习
文章目录反射反射的类型对象反射的值对象反射反射是指程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换位内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取本身的信息。支持反射的语言可以在程序编译期将变量的反射信息,如字段信息、类型信息、结构体信息等整合到可执行文件中去,并给程序提供接口访问反射信息,这样就可以在程序运行期获取类型的反射信息,并且有能力修改...原创 2020-04-18 22:59:06 · 151 阅读 · 0 评论 -
Go语言学习笔记---接口
文章目录接口声明接口实现接口的条件理解类型和接口的关系接口的嵌套组合---将多个接口放在一个接口内在接口和类型之间转换接口Go语言中使用组合实现对象特性的描述。对外通过接口暴露能使用的特性。Go语言的接口设计是非侵入式的,接口编写者无需知道接口被哪些类型实现。而接口实现者只需要知道实现的是什么样子的接口。接口实现者不需要关系接口被怎样使用,调用者无需关心接口的实现细节。概念:接口是...原创 2020-04-16 07:56:08 · 175 阅读 · 0 评论 -
Go语言小示例---接口的使用
便于扩展输出方式的日志系统日志可以用于查看和分析应用程序的运行状态。日志一般可以支持输出多种形式,如命令行、文件、网络。本例将搭建一个支持多种写入器的日志系统。package mainimport ( "errors" "fmt" "os")/*本例中定义一个日志写入器接口(LogWiter),必须遵循这个接口协议才能被日志器注册。日志器有一个写入器的注册方法*///...原创 2020-04-15 14:59:34 · 225 阅读 · 0 评论 -
GO语言学习笔记---结构体
结构体Go语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性。结构体成员是由一系列的成员变量构成,这些成员变量也被称为字段。字段有一下特性:拥有自己的类型和值字段名必须唯一字段的类型也可以是结构体,甚至是字段所在结构体的类型。注意:Go语言中没有类的概念,也不支持类的继承等面向对象的概念。定义结构体定义格式如下:type 类型名 struct{字段1...原创 2020-04-15 09:17:12 · 282 阅读 · 0 评论 -
Go语言小示例---关于结构体的使用
二维矢量模拟玩家移动package mainimport ( "fmt" "math")type Player struct { currPos Vec2 //当前位置 targetPos Vec2 //目标位置 speed float32 //移动速度}type Vec2 struct { X, Y float32}//使用矢量加上另外...原创 2020-04-15 09:16:30 · 177 阅读 · 0 评论 -
Go语言学习笔记---函数的详细用法
文章目录函数声明函数函数变量---把函数作为值保存在变量中匿名函数---没有函数名字的函数函数函数是组织好的、可重复使用的,实现单一或者相关功能的代码段,其可以提高应用的模块性和代码的重复利用率。函数本身可以作为值进行传递支持匿名函数和闭包函数可以作为接口声明函数func 函数名(参数列表)(返回参数列表){函数体}1.参数类型的简写在参数列表中,如有多个参数变量...原创 2020-03-31 22:44:00 · 298 阅读 · 0 评论 -
Go语言笔记---流程控制
条件判断正常用法,和C语言不同,if后面不需要加括号ten :=11if ten>10{}else{}特殊写法://Connect()是一个带有返回值的函数,err:=Connect()是一个语句。//err!=nil才是if的判断表达式if err:=Connect();err !=nil{}for三种用法:1.结束循环时带可执行语句的无限循环var ...原创 2020-03-23 18:14:29 · 112 阅读 · 0 评论 -
Go语言学习笔记---list的基本使用
列表—可以快速增删的非连续空间的容器1.初始化列表变量名 :=list.New()var 变量名 list.List2.在列表中插入元素双链表支持从队列前方或者后方插入元素,分别对应的方法是PushFront和PushBack.这两个方法都会返回一个*list.Element结构。示例:l := list.New()l.PushBack("fist")l.PushFr...原创 2020-03-22 08:31:02 · 501 阅读 · 0 评论 -
Go语言学习笔记---映射(map)的基本使用
map—建立事务关联的容器应用场景:需要使用任意类型的关联关系时,需要用到映射。如学号和学生,名字与档案。底层实现:使用散列表实现。散列表实现,所以查找时间复杂度为O(1),最坏情况为O(n),n为元素总数。1.添加关联map并访问关联和数据。定义:map[keyType]ValueType示例:m := map[string]string{"W":"forward",...原创 2020-03-22 08:08:00 · 212 阅读 · 0 评论 -
Go语言学习笔记----切片
切片—动态分配大小的连续空间Go语言切片内部结构包含地址、大小和容量。切片一般用于快速地操作一块数据集合。原创 2020-03-21 18:39:20 · 225 阅读 · 0 评论 -
Go语言学习笔记------字符串练习实例
Base64编码—电子邮件的基础编码格式Base64编码是常见的对8bit字节码的编码方式之一。Base64编码可以使用64个可打印字符来表示二进制数据,电子邮件就是使用这种编码。Go语言标准库自带了Base64编码算法。示例如下:package mainimport ( "encoding/base64" "fmt")func main() { //发送消息的内容 me...原创 2020-03-21 08:39:51 · 166 阅读 · 0 评论 -
Go语言学习笔记-----数组
数组----固定大小的连续空间数组:一段固定长度的内存区域。数组声明时就确定,使用时可以修改成员,但是数组大小不可变化。声明数组数组声明格式如下:var 数组变量名 [元素数量]TT表示任意基本类型,包括数组本身。当类型为数组本身时,可表示二维数组例如:var team [3]stringteam[0] ="hammer"team[1] ="soldier...原创 2020-03-17 22:05:16 · 129 阅读 · 0 评论 -
Go语言小示例----输出正弦(Sin)图像
设置背景色 //图片的大小 const size = 300 //根据给定的大小创建灰度图 pic := image.NewGray(image.Rect(0, 0, size, size)) //遍历每个像素 for x := 0; x < size; x++ { for y := 0; y < size; y++ { //填充为白色 pic.SetGr...原创 2020-03-16 18:52:04 · 767 阅读 · 0 评论 -
Go语言学习笔记----基本语法与使用
变量变量声明的基本样式var a int //整型类型var b string //字符串类型var c []float32 //声明32位浮点切片类型,表示由多个浮点类型组成var d func() bool //返回值为布尔类型的函数变量var e struct{ x int}//结构体类型变量,拥有一个整型x字段也可以使用批量格式(专为懒癌患者定制)var{ a...原创 2020-03-15 21:09:30 · 248 阅读 · 0 评论 -
Go语言环境配置 Sublime Text+golang+gocode+margo详细过程及解决问题的方法
一、安装git因为在之后安装gocode和margo需要用到git。git的安装教程可以看这里二、安装golang官方下载地址:go官方下载如果进不去的话,在网上找一下,挺好找的,我选择的是 :go1.4.2.windows-amd64.msi,下载到指定的目录,然后安装,安装完成后开始设置环境变量。GOROOT,进入我的电脑->高级设置->环境变量中看GOROOT是否存在...原创 2020-03-12 11:50:46 · 972 阅读 · 0 评论 -
Go学习笔记1----认识Go语言
一、Go语言的起源Go 语言起源 2007 年,并于 2009 年正式对外发布。它从 2009 年 9 月 21 日开始作为谷歌公司 20% 兼职项目,即相关员工利用 20% 的空余时间来参与 Go 语言的研发工作。该项目的三位领导者均是著名的计算机工程师:Robert Griesemer,参与开发 Java HotSpot 虚拟机;Rob Pike,Go 语言项目总负责人,贝尔实验室 Unix...原创 2020-03-12 10:38:47 · 139 阅读 · 0 评论