![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang
昨夜是今晨的开始
这个作者很懒,什么都没留下…
展开
-
ffmpeg命令使用记录
1.添加水印ffmpeg -i a.mp4 -acodec copy -b:v 548k -vf "movie=logo.png[watermark];[in][watermark]overlay=20:20" output.mp4说明- -i a.mp4:要处理的视频文件- -acodec copy:保持音频不变- -b:v 548k:设置视频比特率,默认200k,...原创 2019-07-11 20:38:26 · 468 阅读 · 0 评论 -
Ubuntu 下搭建 Golang 开发环境和 Goland 开发工具
官网下载 点击进入下载页面下载页面cd 到 刚刚下载的文件的路径下面 Ubuntu 默认是在 Download 文件夹下面cd Download使用 tar 命令将 Go 安装包解压到 /opt 路径下//这里面的 goland-2018.1.1.tar.gz 是下载的文件名,要换成你自己的tar -zxzf goland-2018.1.1.tar.gz -C /opt...转载 2018-11-10 10:53:50 · 2303 阅读 · 0 评论 -
go语言-使用“范型”interface进行排序
在进入泛型的话题之前, 首先实现对int slice(可以看做int数组)的冒泡排序:func BubbleSort(array []int) { for i := 0; i < len(array); i++ { for j := 0; j < len(array)-i-1; j++ { if array[j] > arra...转载 2018-10-24 22:10:28 · 931 阅读 · 0 评论 -
go-time简解
go语言的time包组成time.Duration(时长,耗时) time.Time(时间点) time.C(放时间点的管道)[ Time.C:=make(chan time.Time) ]time包里有2个东西,一个是时间点,另一个是时长 时间点的意思就是“某一刻”,比如 2000年1月1日1点1分1秒 那一刻(后台记录的是unix时间,从1970年开始计算) 时长就是某一刻与...转载 2018-10-24 17:52:20 · 1016 阅读 · 0 评论 -
jetbrains mac版
https://www.jianshu.com/p/3c87487e7121 http://idea.lanyus.com/转载 2018-10-24 16:35:06 · 408 阅读 · 0 评论 -
go语言-常见数据结构与算法
选择排序//基础版func SelectionSort(arr []int, n int) { for i := 0; i < n; i ++ { minindex := i for j := i + 1; j < n; j++ { if arr[minindex] > arr[j] { minindex = j } } arr[mi...原创 2018-10-29 22:01:18 · 3407 阅读 · 1 评论 -
Go语言的反射三定律
这里先抛出GO语言的反射三定律,然后一一进行讲解:1、反射可以将“接口类型变量”转换为“反射类型对象”2、反射可以将“反射类型对象”转换为“接口类型变量”3、如果要修改反射类型对象,其值必须是“addressable”谈到Go的反射,涉及到如下几个概念。(1)数据类型。go语言中的数据类型有:Bool Int Int8 ...转载 2018-10-23 21:55:54 · 1703 阅读 · 0 评论 -
go语言-生成随机数
Go math/rand包用于生成随机数。代码: package mainimport "fmt"import "math/rand"func main() { fmt.Println(rand.Intn(100)) //产生0-100的随机整数 fmt.Println(rand.Float64()) //产生0.0-1.0的随机浮点点 s1 ...原创 2018-10-25 14:33:29 · 1084 阅读 · 0 评论 -
go编译二进制文件报错解决方法
go install --tags=nopkcs11--tags忽视报错原创 2018-10-17 16:03:12 · 2549 阅读 · 0 评论 -
mamppro4.0.1注册码亲测可用
MP-1337-1347-1337-1237A-8424-502C-9A84-2F5EA-A原创 2018-10-09 20:01:43 · 5479 阅读 · 0 评论 -
大数据排序或取重或去重相关问题
1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url? 方案1:可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。 s 遍历文件a,对每个url求取 ,然后根据所取得的值将url分别存储到1000个小文件(记为 )中。这样每个小文件的大约为300...转载 2018-10-09 17:06:57 · 368 阅读 · 0 评论 -
go语言关于RPC有关的好书
非常通俗易懂的阐述了RPC 想要学习RPC的同学可以读一下https://books.studygolang.com/go-rpc-programming-guide/part2/quickstart.html转载 2018-10-09 13:17:02 · 470 阅读 · 0 评论 -
go语言常见轮子
strings 字符串基本操作strconv 字符串操作 xml 结构体序列化与反序列化flag 获取命令行参数ioutil 读写文件操作原创 2018-10-14 17:08:19 · 725 阅读 · 0 评论 -
使用go语言编写简易Blockchain实现web调用RPC过程
在本机端口进行查询 由于是第一次运行该链 生成创世区块通过http实现RPC命令的调用 实现添加块查询当前所有块的信息 这里只做了两个命令 分别是get和write源代码如下基础功能的实现package coreimport ( "crypto/sha256" "encoding/hex" "time")//定义区块type Block s...原创 2018-11-10 19:55:43 · 952 阅读 · 0 评论 -
go语言间接调用bitdoin-cli的RPC 实现web界面交互
查询钱包余额查看钱包信息 查询交易记录指定地址进行转账 返回哈希值与余额 整个过程通过go语言exec包调用服务器bitcoin-cli可执行文件 传入对应参数返回对应数据 同样可以在命令行使用curl进行查询 下面是整个程序的源码//通过变量与bitcoind进行交互func bitcoincode(s string) string { ...原创 2018-11-11 19:56:49 · 2733 阅读 · 0 评论 -
Go爬取起点中文网 解决文字反爬
Go语言的爬虫库不如Python强大,却也五脏俱全。今天我们分析如何爬取起点中文网数据,以及遇到反爬如何处理。作品链接:http://www.365yg.com/i6678092837810078222/#mid=1630225993665544代码已开源:https://github.com/shanewni/datavisble首先选择一款Go语言的爬虫框架,这里我选择的...原创 2019-04-13 14:39:26 · 1326 阅读 · 0 评论 -
Go如何处理文字反爬
文字反爬是反爬虫的一种常用手段。在Python中有专门的库可以使用,而Go没有此类库,只能通过别的手段解决文字反爬。在这给大家分享我的思路:1.如何判断是否为文字反爬呢如图所示,HTML界面显示方框打开页面源代码查找到对应位置,发现显示方框的位置有特殊的16进制字符串这里 𘞣𘞥𘞢&...原创 2019-04-13 14:38:01 · 1150 阅读 · 0 评论 -
Go获取Location重定向url
go本身不提供重定向的url,如果想要获取,只能从源码下手。http.Get()接收到一个url后,会进一步确认,是否包含重定向url,如果包含,自动转到新的url,我们需要做的就是在这之前截取重定向url。进入到http包中找到函数://自用,保留url地址信息,头部大写进行暴露var RedirectMy string //此行源码中没有,为自己添加func default...原创 2019-04-01 17:43:41 · 5296 阅读 · 0 评论 -
go-创建HTTP/HTTPS IP池及如何使用
go有开源项目能够创建ip池,项目链接:ProxyPool类似的开源项目原理相同,通过爬取免费代理网页的ip端口数据,将有效数据持久化或者内存化供自己使用。在这里,我总结一下使用ProxyPool的细节,方便大家快速进入开发。一conf/app.ini配置文件从哪来。项目源代码中调用conf/app.ini文件,但是conf/下只有example_app.ini...原创 2019-04-05 15:46:35 · 1418 阅读 · 0 评论 -
hugo极速开发个人博客
在此之前,我并不没有考虑过要开发个人博客,而且想当然的认为开发一个博客很麻烦,直到我遇到了ta。话说今天,逛Go论坛时,发现一个好玩的帖子,“Go语言最棒开源项目Top”,其中有大名鼎鼎的“Docker”,“ETCD”等等。在其中发现hugo这个开源项目,据说该作者出身于Docker创始团队,Docker的部分静态页面也是采用的hugo。简单来说,hugo是一个能够帮你快速生成静...原创 2019-03-29 22:39:15 · 429 阅读 · 0 评论 -
bitcoin区块数据的获取及mysql的优化加速
距离找到获取比特币余额的方法已经过去四个多月了,中间停顿了一段时间,没有深入研究,最近又重新拾起这个需求来,遇到了一些大大小小的问题,记录下来,作为自己一个成长的见证 开始时的代码结构是这样每个getblock返回的tx可能是几个到几千个,每个tx可以根据gettransaction生成详细的交易记录older,根据交易信息获取当前接收方的utxo及address地址,这样从头连到...原创 2019-02-22 22:05:28 · 2131 阅读 · 1 评论 -
bind: An operation on a socket could not be performed because the system lacked sufficient buffer sp
如题所示错误并不一定是代码出问题了最近在用golang抓取bitcoin块的数据,程序编译后运行良好。运行一段时间后报错bind: An operation on a socket could not be performed because the system lacked sufficient buffer sp上网搜查后确定问题源:代码连接端口的频次超出windows默认最大值...原创 2019-02-22 10:46:57 · 10385 阅读 · 0 评论 -
go语言http设置及超时请求
package mainimport ( "log" "net/http" //http 请求用 "io" // io.Copy获取http请求状态用;HttpPost "os" // os.Stdout 取io.Copy 返回数据中的status;HttpPost用 "io/ioutil" //处理http获取的数据转换用 ...转载 2018-12-18 09:31:46 · 11257 阅读 · 0 评论 -
使用go语言操作mysql数据库
1.下载并导入数据库驱动包官方不提供实现,先下载第三方的实现,点击这里查看各种各样的实现版本。这里选择了Go-MySQL-Driver这个实现。地址是:https://github.com/go-sql-driver/mysql/。然后按照里面的说明下载驱动包:$ go get github.com/go-sql-driver/mysql最后导入包即可:import "d...转载 2018-11-24 14:03:20 · 169 阅读 · 0 评论 -
go语言依靠curl-RPC实现bitcoind-cli功能web界面框架
首先我们看一下bitcoin对JSON-RPC的解释:3.2.5首次运行比特币核心当你第一次运行bitcoind时,它会提醒你用一个安全密码给JSON-RPC接口创建一个配置文件。该密码控制对Bitcoin Core提供的应用程序编程接口(API)的访问。文章地址:http://book.8btc.com/books/6/masterbitcoin2cn/_book/ch03.html...原创 2018-11-14 15:47:54 · 1250 阅读 · 2 评论 -
go语言byte切片转为string切片函数
hash := sha256.Sum256([]byte(value))hashstr := hex.EncodeToString(hash[:])原创 2018-10-14 09:27:42 · 4654 阅读 · 0 评论 -
go语言渲染各种web格式的包render
https://github.com/unrolled/render包的地址 Render是一个包,提供轻松呈现JSON,XML,文本,二进制数据和HTML模板的功能。此包基于Martini 渲染工作。渲染可以与几乎任何Web框架一起使用,只要您可以http.ResponseWriter从处理程序访问它。渲染函数只包含Go的现有功能,用于编组和渲染数据。HTML:使用html / ...原创 2018-10-07 11:52:58 · 2502 阅读 · 0 评论 -
关于golang的迷宫广度优先算法
广度算法是很重要很有用的算法 并且面试常会考到引用https://blog.csdn.net/u011954296/article/details/51279176一句话迷宫是许多小方格构成的矩形,在每个小方格中有的是墙(用1表示),有的是路(用0表示)。走迷宫就是从一个小方格沿上、下、左、右四个方向到邻近的方格,当然不能穿墙。设迷宫的入口是在左上角(0,0),出口是在右下角(6,5)。根...原创 2018-09-02 19:23:24 · 755 阅读 · 0 评论 -
关于golang的测试实例
之前我们做过错误处理实例 现在我们来实际测试这个例子 先附上错误处理代码自己写的库 package filelistingimport ( "net/http" "os" "io/ioutil" "strings")const prefix = "/list/"type userHandle string //给接口使用的类型func (u u...原创 2018-08-30 14:28:45 · 201 阅读 · 0 评论 -
关于golang的http库及常用库
go语言作为一个面向网络 面向服务 高并发的一门通用语言 http库是非常重要的下面我们来了解http库及其他标准库http库可以对客户端做很多的工作 下面我们来看一下func main() { resp, err := http.Get("https://mp.csdn.net")//网址是否能够打开 如果能打开返回结构体指针 if err != nil{ //错误返回报...原创 2018-09-01 21:50:14 · 10368 阅读 · 1 评论 -
关于golang的channel
go语言中的goroutine通道通信依靠的是channle下面我们来认识一下channle的语法func chanDemo(){ var c chan int //定义变量c为chan类型 并且chan接收数据类型是int c = make(chan int) //初始化变量c 只有初始化后才可以使用 go func(){ //一般来讲channel与goroutine配合使用...原创 2018-09-01 13:26:32 · 3725 阅读 · 0 评论 -
关于golang的错误处理
延迟返回关键字 defer 作用是在程序结束或异常之前执行package mainimport "fmt"func tryDefer(){ defer fmt.Println("1") defer fmt.Println("2") fmt.Println("3") return fmt.Println("4")}func main(){ tryDefer()}//...原创 2018-08-29 20:09:46 · 2569 阅读 · 0 评论 -
关于golang的函数式编程
函数式编程特点 参数 变量 返回值 都可以是函数"正统"函数式编程特点如下.不可变性:不能有状态,只有常量和函数.函数只能有一个参数但go语言区别于“正统”函数式编程 go语言是面向大众的语言 所以不会在语法上纠结正统不正统下面先看一个函数式编程 闭包 的例子package mainimport "fmt"func Adder() func(v int) int{...原创 2018-08-28 14:17:50 · 4733 阅读 · 0 评论 -
关于golang的goroutine
go语言原生支持并发编程 在通用型语言中 原生支持并发编程的并不常见下面我们先来看一个例子package mainimport ( "fmt" "time")func main(){ for i := 0; i < 1000; i ++ { //一千个人同时运行 go func(it int){ //go关键字支持并发运行 for { ...原创 2018-08-30 21:43:31 · 179 阅读 · 0 评论 -
关于golang面向接口
go语言是一门面向接口的语言 不具有继承多态传统语言的继承多态由go语言的接口完成 所以go语言的接口比较灵活go语言接口由使用者定义 传统语言由实现者定义先来一个简单的接口示例 package mock //接口方法专用包type Retriever struct{ //定义接口初始类型 Conount string}func (r Retriever)Get(ur...原创 2018-08-27 21:01:39 · 489 阅读 · 0 评论 -
关于golang如何生成文档
go语言自带的文档生成十分好用下面我们来看看具体怎么操作 我们先来看一个没有任何注释的一个先进先出的队列例子package queuetype Queue []interface{}func (p *Queue) Push(v interface{}){ *p = append(*p,v.(int))}func (p *Queue) Pop() interface{...原创 2018-08-30 16:42:27 · 10563 阅读 · 0 评论 -
关于golang性能调试及pprof可视化
golang支持使用pprof进行可视化性能检测打开powershell 在需要性能可视化的文件夹下输入 go test -bench . -cpuprofile cpu.out得到一个.out文件接着输入 go tool pprof cpu.out 进入pprof输入web 浏览器弹出性能可视化 模块越大代表性能消耗越大 注意web弹出页面文件后缀为.svg ...原创 2018-08-27 10:51:39 · 12612 阅读 · 6 评论 -
关于golang测试覆盖率及性能测试
命令行同样可以使用在powershell 需要调试的文件夹下go test -coverprofile=c.out继续输入go tool cover -html=c.out 浏览器打印具体代码覆盖率继续探讨性能测试语句如下命令行同样可以执行性能测试...原创 2018-08-26 21:40:32 · 1087 阅读 · 0 评论 -
Discover GoLand快速入门
发现GoLand本指南旨在帮助您通过GoLand提高工作效率,并提供最重要功能的概述,提示,技巧和最热门的快捷方式。用户界面用户界面中最有趣的部分是GoLand 编辑器,因为它允许您在不离开的情况下调用几乎任何IDE功能,这有助于您组织具有更多屏幕空间的布局,因为隐藏了工具栏和窗口等辅助控件。如果您想专注于代码,请尝试无牵引模式。它会删除所有工具栏,工具窗口和编辑器选项卡。要切...转载 2018-08-24 18:00:35 · 1550 阅读 · 0 评论 -
关于golang项目之 并发版
上一次我们讲到单任务版爬虫接下来我们继续改造成并发版爬虫首先我们回顾一下单任务版的架构单任务版的架构中 Fetcher模块与Parser模块相对来说比较耗时在这里 我们把Engine Parser Fetcher 抽象为一个worker 进行goroutine 下面我们进行代码的重构点击这里获得单价版全部代码 单机版代码全部在此连接最后部分package en...原创 2018-09-08 17:45:36 · 858 阅读 · 0 评论