Go语言中文网 为您找到相关结果 25

Golang 网络爬虫框架gocolly/colly 一

Golang 网络爬虫框架gocolly/colly 一 gocolly是用go实现的网络爬虫框架,目前在github上具有3400+星,名列go版爬虫程序榜首。gocolly快速优雅,在单核上每秒可以发起1K以上请求;以回调函数的形式提供了一组接口,可以实现任意类型的爬虫;依赖goquery库可以像jquery一样选择web元素。 gocolly的官方网站是http://go-colly.org/,提供了详细的文档和示例代码。安装colly: go get -u github.com/gocolly/colly/... 在代码中导入包: import "github.com/gocolly/colly" colly的主体是Collector对象,管理网络通信和负责在作业运行时执行附加的回掉...阅读全文

博文 2017-12-30 00:30:00 majianguo

Pokemon Go 教程

澳大利亚apple id 账号:fdf087469@163.com 密码:He807671626 据说不要登icould,一登就会锁了 将iPhone内部的Appstore ID更改一下。登入AppStore,可以看见AppStore已经自动切换到澳大利亚区,直接搜索Pokemon Go,点击下载。此过程稍微慢点,请各位耐心等待。 pokemon go中国玩家必须懂的教程 下载完先别着急,将刚刚iCloud ID更换成你原来的,再次登入AppStore,已经自动切换到国区(最垃圾的就是国区!!),搜索下载一个VPN,这里我推荐Green VPN或者Tiger VPN,可以免费用10天(感觉爽就付费包月咯)。 pokemon go中国玩家必须懂的教程 下载完VPN,打开VPN软件,会提示设置,...阅读全文

博文 2016-07-18 12:00:01 q8649912

go语言指针符号的*和&

先看一段代码 先放一段代码,人工运行一下,看看自己能做对几题? package main import "fmt" func main() { var a int = 1 var b *int = &a var c **int = &b var x int = *b fmt.Println("a = ",a) fmt.Println("&a = ",&a) fmt.Println("*&a = ",*&a) fmt.Println("b = ",b) fmt.Println("&b = ",&b) fmt.Println("*&b = ",*&b) fmt.Println("*b = ",*b) fmt.Println("c = ",c) fmt.Println("*c = ",*c) fm...阅读全文

博文 2014-10-04 19:26:00 waynehu

notepad++ 的golang语法高亮

go 自带了notepad++的语法高亮配置,只需要在notepad++里导入即可: 1. 打开go的安装目录misc\notepadplus下的userDefineLang.xml,把开头的和结尾的的注释取消掉 2. 把misc\notepadplus目录下的go.xml放到notepad++安装目录下的plugins\APIs目录里 3. 打开notepad++,菜单:语言=>Define you language,在弹出的对话框里导入刚才的userDefineLang.xml即...阅读全文

博文 2014-10-04 19:26:09 potoofly

golang strings.TrimLeft 和 strings.TrimPrefix的区别

首先看官方文档介绍 func TrimLeft(s string, cutset string) string{} TrimLeft返回字符串s的一部分,其中删除了cutset中包含的所有前导Unicode代码点。 func TrimPrefix(s, prefix string) string{} TrimPrefix返回不包含前缀字符串的s。如果s不以前缀开头,则s不变返回。 理解 TrimPrefix很好理解,就是把前缀字符串去掉,剩下的就是需要返回的 那么TrimLeft怎么理解呢,我来举个例子: words := "mongodb://off" prefix := "mongodb://" fmt.Println(strings.TrimLeft(words, prefix)) w...阅读全文

博文 2019-12-27 16:34:27 hewolf

consistent hash(一致性哈希算法)

一、产生背景今天咱不去长篇大论特别详细地讲解consistent hash,我争取用最轻松的方式告诉你consistent hash算法是什么,如果需要深入,Google一下~。举个栗子吧:比如有 N 个 cache 服务器,需要将一个object 映射到 N 个 cache 上,我们可以用类似下面的方法计算 object 的 hash 值,然后均匀的映射到到 N 个 cache 上:hash(object)%N比如object是“hello”,hash(object)是100,N为3,100%3=1,这个数据会被存到第1个cache上(0、1、2三个cache)。这样就能解决一堆数据放到N个cache上的问题。现在有个突发情况,0、1、2三个cache中1损坏了!怎么办呢,cache 1上...阅读全文

博文 2018-08-05 20:35:11 CloudGeek

gorm查询流程源码分析

gorm查询流程源码分析 gorm是用golang写的数据库orm库,目前golang写的orm库也有很多,例如xorm,beego orm,gomybatis等,各有各的优势特点,看一下gorm对golang基础框架中数据库相关接口是如何封装的。 gorm一般的初始化方式 db, err := gorm.Open("mysql", "user:password@/dbname?charset=utf8&parseTime=True&loc=Local") if err != nil { log.Errorf("init error!") } gorm中DB结构体的定义: // DB的结构体 type DB struct { sync.RWMutex // 锁 Value interface...阅读全文

博文 2019-05-12 01:34:50 一只努力的微服务

用go写了个mapReduce的word count程序有疑问,求大神指点

前两天用go写了一个mapReduce的word count,https://github.com/madiks/goMapReuce,大概设这样设计的: 四个channel:mapIn(接受map任务输入数据),mapOut(写入map任务的结果),reduceIn(将mapOut中的数据取出做分类整合然后写入reduceIn),reduceOut(写入reduce任务的结果)。在两个goroutine分别监听mapIn和reduceIn,一旦收到数据就启一个goroutine去执行map/reduce任务。基于这个写了一个word count。 我的疑问是: 1.假设有海量数据需要处理,不断写入mapIn channel,就会不断启动goroutine去执行任务,可是机器...阅读全文

请教一个关于go反射机制的问题

由于做一个mis系统路由会非常之多,为了防止路由文件过长,试图给gin框架加一个自动路由功能,效果是,如果我请求xxx/bank/list,就自动去调用controllers/bank.go下的List方法,而无需去手写任何路由,当然,手写的路由可以盖掉这个 所以,需要在启动时,框架可以在不import的情况下自动识别这个文件 然而golfing的机制限制了不import连走init的机会都没有,它的静态性并不能像node.js一样可以就地import一个.js文件,而包自己本身不是一个类,就不能像java/C#那样根据类名反射new一个对象。 求助这个问题是不是在现在的go语言下根本不可解,如何可解有什么方法吗? 另外,用go作web开发,比较推荐的路由-控制器的文...阅读全文

notepad++ 的golang语法高亮

go自带了notepad++的语法高亮配置,只需要在notepad++里导入即可: 1. 打开go的安装目录misc\notepadplus下的userDefineLang.xml,把开头的和结尾的的注释取消掉 2. 把misc\notepadplus目录下的go.xml放到notepad++安装目录下的plugins\APIs目录里 3. 打开notepad++,菜单:语言=>Define you language,在弹出的对话框里导入刚才的userDefineLang.xml即...阅读全文

博文 2014-10-04 19:26:09 gzme

golang 文件操作

package main import ( "bytes" "fmt" "io" "os" ) var file *os.File = &os.File{} var fileBuf *bytes.Buffer = bytes.NewBufferString("") func main() { var err error file, err = os.OpenFile("testData.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR|os.O_TRUNC, os.ModePerm|os.ModeTemporary) //os.O_TRUNC 清空已经存在的文件 if err != nil { panic(err) } fileBuf.WriteString(f...阅读全文

博文 2016-01-15 03:00:00 davin

go 速学 - 11 - 结构

目录 结构 概念 创建结构 使用结构 值传递 匿名结构 结构的组合 概念 定义一个组合 使用组合 摘要 定义结构,使用结构,值传递与指针传递,匿名结构,结构的组合 结构 概念 Go 中没有 class 的概念,结构可以完成类似功能 支持指向自身的指针类型成员 支持匿名结构 支持 == 和 != 运算符 创建结构 格式 type struct{} type person struct { name string age int } 使用结构 结构变量的各个字段都会有默认值 p1 := person{name: "Jack"} p1.name = "Peter" //p1 {Peter 0} 值传递 参数中的结构默认为值传递 p2 := person{name: "Jack", a...阅读全文

博文 2015-04-25 03:00:00 mrseasons

使用IP地址修改器助力网络推广

简单的说常见的网络推广渠道上主要有四类1.引擎类 google、baidu、yahoo等,主要形式以收费的关键字竞价,和免费的自然排名。 2.行业网站类 每个行业都有行业网站,各种黄页网站和大综合性门户网站也有行业目录,主要是登录,分为手工登录(效果好速度慢,需要专业人员) 自动登录 两种,而且自动登录又有 1登录推广网站(自动帮你登录多个网站目录)。2.推广软件(有些推广软件号称能做所有的事情,其实每个软件能力都是有限的有针对的)将网站推广到所能登录的各类目录(引擎)上。3.电子商务平台如阿里巴巴等等,这些大的电子商务平台可以很好推广效果,而且很多大站的反向链接,对你网站PR分(gooele的评分系统,这里泛指各种评分机制)作用是很大的。只有你的PR高了,你的网站自然排名才会高,自然排名高...阅读全文

博文 2019-01-21 09:57:17 xunsu10

免费,开源的数字货币收款插件

虽然区块链蓬勃发展,但是程序员要在网站上支持数字货币收款依然非常困难。无论是比特币,还是eos都需要安装全节点软件才能比较稳定的做到查询收款服务。然而目前的区块链全节点都耗费大量硬盘空间和系统资源,仅仅为了为了数字货币收款进行投入是不划算的。 这里介绍一个收款插件。 优点: 无需依赖外部库,因为是go语言编写的。 无需外部数据库,默认数据库使用sqlite3,熟练工可以自己修改支持mysql和postgre。 开发者使用http请求就可以创建支付通道,查询支付状态。 收到支付有推送,方便编写业务代码。 无需安装复杂的比特币全节点,以太坊全节点,eos全节点就可以收款。 体积小巧 前期准备一 Mixin Messenger账户 中国大陆iOS和安卓用户前往该地址下载App并注册账户。 大陆以外...阅读全文

博文 2019-06-20 22:32:53 Mixin_Network

golang并发----context于任务取消

context与任务取消 根context:通过context.Background()创建 子context:context.WithCancel(parentContext)创建 ctx,cancel:=context.WithCancel(context.Background()) 当前context被取消时 基于他的子context都会被取消 接收取消通知 <-ctx.Done() func iscanceled(ctx context.Context) bool { select { case <-ctx.Done(): return true default: return false } } func dowork() { time.Sleep(time.Second) } f...阅读全文

博文 2019-12-07 06:32:43

Golang学习笔记 方法和接口

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u011054333/article/details/76650083 在编程语言中,方法和函数的概念需要搞清楚。函数指的是一个封装的代码块,我们可以直接调用它,并返回结果。而方法其实也是一种函数,只不过方法需要和某个对象绑定。Golang并没有类的概念,不过仍然有方法和接口这些概念。 方法 方法接收者 方法接收者是一个特殊参数,给函数指定了这个参数之后,函数就成为方法了。这个特性有点像Kotlin和C#中的扩展方法,定义了带有接收者的方法之后,接收者这个类型就好像定义了这个方法一样,我们可以直接在该类型上调用方法。这在功能上,和面向对象的概念是很类似的。 例如下面这样,定义了一个汽车结构,然后定义了...阅读全文

博文 2019-04-29 07:31:37 u011054333

YAFFS2移植到AliOS Things指南

摘要: YAFFS2介绍 YAFFS(Yet Another Flash File System)是第一个专门为NAND Flash存储器设计的嵌入式文件系统,适用于大容量的存储设备。YAFFS 是基于日志的文件系统,提供磨损平衡和掉电恢复的健壮性。 **点此查看原文:http://click.aliyun.com/m/41950/** **YAFFS2介绍** YAFFS(Yet Another Flash File System)是第一个专门为NAND Flash存储器设计的嵌入式文件系统,适用于大容量的存储设备。YAFFS 是基于日志的文件系统,提供磨损平衡和掉电恢复的健壮性。它还为大容量的Flash 芯片做了很好的调整,针对启动时间和RAM 的使用做了优化。它适...阅读全文

2018-09-03 阅读笔记

最近本风流才子重出江湖,不做朋友圈段子手,决定开始好好写文章了,大家好好看好好学吧! 近半年来收集了一系列大厂技术 blog,断断续续在小本本上写了一些笔记,是时候整理一下了,争取日更。 PostgreSQL 调参 原文链接 摘要:PostgreSQL 默认的配置并没有为应用做特殊的优化,然而有许多参数是有优化空间的,譬如: shared_buffer PostgreSQL 有两级缓存,自己的缓存 shared_buffer 和内核缓存。为了在什么烂机器上都能跑,shared_buffer 的默认值设的很小。调节 shared_buffer 会非常有效。推荐值是系统内存的 25% wal_buffers WAL = write ahead log,预写式日志,From Wiki: 在使用WA...阅读全文

博文 2018-09-03 22:34:55 康某

Go语言:简介(二)

Go语言:简介(二) 对Go语言了解前,我们先来补一些基本概念 基本概念 并发程序 一个并发程序可以在一个处理器或者内核上使用多个线程来执行任务,但是只有同一个程序在某个时间点同时运行在多核或者多处理器上才是真正的并行。 并发程序可以是并行的,也可以不是。 多线程缺点 使用多线程的应用难以做到准确,最主要的问题是内存中的数据共享,它们会被多线程以无法预知的方式进行操作,导致一些无法重现或者随机的结果。 使用多线程需要在意同步问题,可能出现死锁,线程上下文切换带来的开销 单线程中大计算量问题 利用多核CPU,将计算分发到各个子进程,将大量的计算分解掉,然后再通过进程间的事件消息来传递结果。 什么是协程 goroutines(协程) 1.协程与线程关系 在协程和操作系统线程之间并无一对一的关系:...阅读全文