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

xstrings:Go 语言字符串库的补完

项目地址:https://github.com/huandu/xstrings xstrings 是一个很简单的 Go 语言库,简单说就是提供了一些标准库 strings 没提供但依然很有用的字符串算法。每个字符串算法都对效率进行了优化,所有函数都可以做到不超过 O(n) 的复杂度,并且尽量节省内存使用,仅在需要分配内存的时候分配。 现在实现的算法几乎都是其他语言(主要是 Python/Ruby/PHP/Perl)标准库里提供的算法,用 Go 重新实现一遍。未来也许我还会继续加入更多的方法,不过我不希望这个库成为一个算法大杂烩,因此仅仅会考虑那些特别有名且语言无关的函数。 Go 的 strings 操作字符串的时候都是以 rune 为单位进行,但 string 类型却只能以 byte 为单位...阅读全文

博文 2017-02-09 13:43:22 huandu

为什么我不会舍弃 Python 投奔 Go 语言

本文的作者:Russ Cox Russ Cox毕业于麻省理工和哈佛大学,曾在贝尔实验室参与过Plan 9 和 Unix操作系统的开发,最近在google,主要开发Go语言。 最近关于Go语言的话题很多,本月刚好是Go语言诞生3周年。这个语言在谷歌巨人的推动下最终很可能成为今后的主流语言。如果你想简单了解一下Go语言,这里有Go语言官方网站提供的一个很简单的中文版的“Go语言半小时速成教程”,不妨一看。 下面是译文内容: 最近,由于一篇“为什么我不会舍弃Python投奔Go语言(英文)”的博客,我收到了大量的邮件,这篇文章中,作者说Go语言除了“用返回值来处理异常错误”这点外,其它的都非常好。我想写出一点东西,解释一下Go语言为什么这样做,这会对大家都有用。 在Go语言中,规定的方式是,函数返...阅读全文

博文 2015-06-17 23:00:23 cometwo

使用go/scanner库来查找golang标准库源码中最常用的标识符

在YouTube上又看了Francesc Campoy大神的视频。这一期他主要讲了go/scanner库的用法。那么什么是go/scanner呢? 官方的定义是: Package scanner implements a scanner for Go source text. It takes a []byte as source which can then be tokenized through repeated calls to the Scan method. 翻译过来就是: scanner包实现了一个对于go源码文本的扫描器,它把[]byte作为一个源,通过重复的调用Scan方法来进行标记 以下是官方给的例子: package main import ( "fmt" "go/sc...阅读全文

博文 2020-03-22 12:32:40 zooeymoon

解决XORM的时区问题

如果你升级使用了较为新版xorm(如v0.6.3)和go-sql-driver(如v1.3)的go类库,那么你就可能会遇到时区问题。 如 time.Parse("2006-01-02 15:04:05" ,"2018-01-15 12:11:12") // 2018-01-15T12:11:12+00:00 写入是数据库时候就会被改变为2018-01-15T20:11:12+00:00。 上述的就是时区问题,因为我们使用的是东8时区,默认会被设置为0时区,解决方案很简单,只需要在main函数中或者main包中初始化时区: time.LoadLocation("Asia/Shanghai") 数据库配置为 root:root@tcp(127.0.0.1:3306)/test?charset=u...阅读全文

博文 2018-07-02 12:23:11 梦朝思夕

goroutine背后的系统知识

载:http://www.sizeofvoid.net/goroutine-under-the-hood/ Go语言从诞生到普及已经三年了,先行者大都是Web开发的背景,也有了一些普及型的书籍,可系统开发背景的人在学习这些书籍的时候,总有语焉不详的感觉,网上也有若干流传甚广的文章,可其中或多或少总有些与事实不符的技术描述。希望这篇文章能为比较缺少系统编程背景的Web开发人员介绍一下goroutine背后的系统知识。 1. 操作系统与运行库 2. 并发与并行 (Concurrency and Parallelism) 3. 线程的调度 4. 并发编程框架 5. goroutine 1. 操作系统与运行库 对于普通的电脑用户来说,能理解应用程序是运行在操作系统之上就足够了,可对于开发者,我们还需...阅读全文

博文 2015-06-17 20:05:19 chanshimudingxi

go time 包操作数据库

可以通过time.LoadLocation的方式避免时区的变化 func TestStatsMsg(t *testing.T) { assert := assert.New(t) assert.NotNil(QQGroupMMgr) ti, _ := time.Parse("2006-01-02 15:04:05", "2016-10-08 00:00:00") persons := QQGroupMMgr.StatsMsg("茅", ti) assert.NotNil(persons) tz, _ := time.LoadLocation("UTC") for _, value := range persons { fmt.Println("StatsMsg---:", value.ID....阅读全文

博文 2016-10-31 12:00:01 guoer9973

使用golang+java实现基于ecb的3eds加解密

http://www.100hack.com/2014/04/14/golang%E4%B8%AD%E7%9A%84des%E5%8A%A0%E5%AF%86ecb%E6%A8%A1%E5%BC%8F/ henry(454213807) 0:26:14继续下午问的 ECB 问题. 在 go 的 issues 里找到https://code.google.com/p/go/issues/detail?id=5597有人为标准库写好了补丁. 但是项目管理者拒绝了. 另外这个补丁的地址还在 https://codereview.appspot.com/7860047/还有完整的例子. 我直接拷贝下来, 跑了一下, 和 java 的一致 Golang中的DES加密ECB模式 Golang其实已经实现...阅读全文

博文 2016-09-07 07:00:02 zolo

2018-12-24 晚间日记

天气:晴 任务清单 调研 pachyderm 指导搭建环境,和用例。 习惯养成类:日更800+字 && writingTime >=1h 100% 习惯养成类:单词 30个,复习优先,你的目的是为了记住单词,而不是看到更多的单词。同理,记住单词也不是目的,而是使用英文阅读理解,沟通交流的手段。所以每个单词至少要熟悉一个例句。--100% 周目标·完成进度 golang 1K 众病之王---癌症治疗的认知升级(总结2000字+) 学有所得 我们的大脑,除了睡着,不会有闲着的时候。即便你想让自己什么都不想,你也做不到,即便你不在想有目标的事情,你也会有其他的念头冒出来。而且很多都是关于你和他人,和世界的关系。----这些只有在闲下来的时候,才会去做。 现实生活中,有些人,在他所在的领域里面,做的...阅读全文

golang 标准库(encoding/json)学习

golang 标准库(encoding/json)学习 什么是json json的全称是 JavaScript Object Notation,是一种轻量级的数据交换格式。易于人阅读和编写,同时易于机器解析和生成。json有两种类型的数据,用go语言来描述这两种类型: map “名称/值”对,用{}标识 slice 也可以说是数组,用[]标识 { "Name": "Joe", "Age": 18, } ["apple", "banana", "pear"] golang如何处理json golang标准库encoding/json是用来处理json数据的,它有两组函数或者方法来处理json数据。 函数名 输入 输出 描述 Marshal v interface{} []byte, error...阅读全文

博文 2019-04-24 18:34:40 今生路人甲

理解Go接口的实际应用

Go是静态类型的编程语言,自2009年发布以来,已经十多岁了。现在,Go广泛应用于云原生系统、微服务、web开发、运维等场景,并且在webassembly、嵌入式等也有进一步的探索。尤其在中国,Go语言越来越多的被众多公司和开发者所采用,相关的研究文章也不断的涌现,从编译器的优化、运行时的内部机制、标准库的设计、语言规范的探索、第三库的研究和应用、产品中的应用、不同语言的比较等等目不暇接。 Go是面向对象的编程语言吗? 官方FAQ给出了标准答案: Yes and No。 当然,Go有面向对象编程的类型和方法的概念,但是它没有继承(hierarchy)一说。Go语言的接口实现和其它的编程语言不一样,Go开发者的初衷就是保证它易于使用,用途更广泛。 还有一种“模拟”产生子类的方法,拿就是通过在类...阅读全文

博文 2020-03-21 21:48:34 smallnest

Go 每日一库之 carbon

简介 一线开发人员每天都要使用日期和时间相关的功能,各种定时器,活动时间处理等。标准库time使用起来不太灵活,特别是日期时间的创建和运算。carbon库是一个时间扩展库,基于 PHP 的carbon库编写。提供易于使用的接口。本文就来介绍一下这个库。 快速使用 第三方库需要先安装: $ go get github.com/uniplaces/carbon 后使用: package main import ( "fmt" "time" "github.com/uniplaces/carbon" ) func main() { fmt.Printf("Right now is %s\n", carbon.Now().DateTimeString()) today, _ := carbon.No...阅读全文

博文 2020-02-15 15:32:40 darjun

golang讲解(go语言)标准库分析之os(6)

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; Golang标准库 今天我们讲golang标准库的os包type File struct{},还是废话少说直接上代码 (1)os.Create()这个函数是创见一个文件,函数的原型是func Create(name string) (file *File, err error)输入的是名称字符串类型,返回的是一个File的指针和一个error [php] import ( "fmt" "os" "reflect" ) func main() { f, _ := os.Create("widuu_2.go") defer f.Close() fmt.Println(reflect.ValueOf...阅读全文

博文 2017-02-09 18:38:53 widuu

图解Knative核心组件Serving基础设计

最近闲下来,打算把Knative的核心组件Serving给学习下,会继续采用k8s源码学习的方式,管中窥豹以小击大,学习serving的主要目标: 可观测性基础设施、自动伸缩、流量管理等核心组件的设计与实现,今天先简单臆测下,感兴趣的同学, 一起来学习吧 1. 基于云原生的单体应用构建 大多数公司的服务可能都已经经过单体、SOA演进到了当下流行的微服务架构,微服务给我们带来了独立演进、扩容、协作、数据自治等便利的背景下,也带来了诸如稳定性保障、维护、服务治理等实际的问题,我们今天来一起来回归单体,比如我们要新开一个业务,新上一个小的模块这个场景,在云原生的场景下,是如何玩的 1.1 云原生下的单体应用 云原生有很多大佬有很多的解释,我就简单理解成是基于云构建而来,可以使用云上所有已知的现有的...阅读全文

博文 2020-04-24 15:33:04 仔仔

2018-12-26晚间日记

天气:小雨 任务清单 后端框架代码 过认证方案。 习惯养成类:日更800+字 && writingTime >=1h 100% 习惯养成类:单词 30个,复习优先,你的目的是为了记住单词,而不是看到更多的单词。同理,记住单词也不是目的,而是使用英文阅读理解,沟通交流的手段。所以每个单词至少要熟悉一个例句。--100% 周目标·完成进度 golang 1K 众病之王---癌症治疗的认知升级(总结2000字+) 学有所得 健康·饮食·锻炼 每天8000步,今天:7000 食物中低热量,底油,低盐的比重大于50%的重量:早上,中午,晚上OK 人际·家人·朋友 至少每天1小时的陪伴 工作·思考 现在和将来的工作中,最重要的事情是什么? 现在和将来的工作中,最重要的基础核心能力是什么? 最美好的三件事...阅读全文

博文 2018-12-26 23:34:43 郭青耀

聊聊Go工作空间

### 前言 对于刚开始学Go的同学,可能会对几个概念比较迷糊:`GOROOT`和`GOPATH`,今天就来聊聊它们。 执行`go env`,给大家看下我开发环境的相关参数配置(部分): ```go GOARCH="amd64" GOBIN="/Users/chengguilu/goProjects/bin" GOCACHE="/Users/chengguilu/Library/Caches/go-build" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin" GOPATH="/Users/chengguilu/goProjects" GOROOT="/usr/local/go" GOTOOLDIR="/usr/local/go/pkg/t...阅读全文

博文 2019-01-15 15:04:47 Seek

goroutine背后的系统知识

Go语言从诞生到普及已经三年了,先行者大都是Web开发的背景,也有了一些普及型的书籍,可系统开发背景的人在学习这些书籍的时候,总有语焉不详的感觉,网上也有若干流传甚广的文章,可其中或多或少总有些与事实不符的技术描述。希望这篇文章能为比较缺少系统编程背景的Web开发人员介绍一下goroutine背后的系统知识。 1. 操作系统与运行库 2. 并发与并行 (Concurrency and Parallelism) 3. 线程的调度 4. 并发编程框架 5. goroutine 1. 操作系统与运行库 对于普通的电脑用户来说,能理解应用程序是运行在操作系统之上就足够了,可对于开发者,我们还需要了解我们写的程序是如何在操作系统之上运行起来的,操作系统如何为应用程序提供服务,这样我们才能分清楚哪些服务...阅读全文

博文 2015-06-17 20:05:18 kjfcpua

Golang io reader writer

一、《GO语言实战》P194 类 UNIX 的操作系统如此伟大的一个原因是,一个程序的输出可以是另一个程序的输入这一理念。依照这个哲学,这类操作系统创建了一系列的简单程序,每个程序只做一件事,并把这件事做得非常好。之后,将这些程序组合在一起,可以创建一些脚本做一些很惊艳的事情。这些程序使用 stdin 和 stdout 设备作为通道,在进程之间传递数据。 同样的理念扩展到了标准库的 io 包,而且提供的功能很神奇。这个包可以以流的方式高效处理数据,而不用考虑数据是什么,数据来自哪里,以及数据要发送到哪里的问题。与 stdout和 stdin 对应,这个包含有 io.Writer 和 io.Reader 两个接口。所有实现了这两个接口的类型的值,都可以使用 io 包提供的所有功能,也可以用于其...阅读全文

博文 2019-03-12 20:34:42 懒皮

ETCD探索-Lease

ETCD探索-Lease 梗概 租约,是ETCD的重要特性,用于实现key定时删除功能。与Redis的定时删除功能基本一致。 猜想 我们通常是这么使用Lease的,首先申请一个租约:lease,然后将这个租约赋给一对KeyValue。ETCD-Lease的实现不难,在讨论怎么实现之前,可以先猜测下。我的直观想法: func putWithLease(key string, value string, ttl int) { go func() { time.Sleep(ttl * time.Second) delete(key) }() put(key, value) } 简单说明,当put一对kv时,开启一个协程用于计时。当过了ttl后,将该key删除。 这么做可以实现key的定时删除功能,...阅读全文

博文 2020-02-19 17:32:47 HammerMax

Golang学习笔记 - 标准库"net/http"的简析及自制简单路由框架

文链接:http://targetliu.com/golang-http-router/ 还是在继续学习Go的路上,曾经在使用PHP的时候吃过过度依赖框架的亏。现在学习Go的时候决定先打好基础,从标准库学起走。 源码分析 我们知道最简单的建立http服务器代码基本上都是这样的: http.HandleFunc('/', func(w http.ResponseWriter, r *http.Request){ fmt.Fprint(w, "Hello world") }) http.ListenAndServe(":8080", nil) 这样就成功的建立了一个监听 8080 端口的http服务器,当访问的时候输出 Hello world 我们顺藤摸瓜来看看 HandleFunc 做了些什么...阅读全文

博文 2017-02-09 08:33:28 Target_Liu

Go语言开发(十四)、Go语言常用标准库四

Go语言开发(十四)、Go语言常用标准库四 一、heap 1、heap简介 heap仅仅提供了最小堆的操作,没有提供堆的数据结构,堆的数据结构必须由开发者自己实现。heap提供了一个heap.Interface接口来作为堆的操作和堆的数据结构(开发者自己实现)之间的桥梁,堆的数据结构必须满足此接口: type Interface interface { sort.Interface Push(x interface{}) // add x as element Len() Pop() interface{} // remove and return element Len() - 1. } sort.Interface定义在sort.go中: type Interface interface...阅读全文

博文 2019-01-17 02:35:14 天山老妖S

Go语言编程(十五)之接口

接口在Go语言有着至关重要的地位。如果说goroutine和channel是支撑起Go语言的并发模型的基石,让Go语言在如今集群化与多核化的时代成为一道极为亮丽的风景,那么接口是Go语言整个类型系统的基石,让Go语言在基础编程哲学的探索上达到前所未有的高度。 Go语言在编程哲学上是变革派,而不是改良派。这不是因为Go语言有goroutine和channel,而更重要的是因为Go语言的类型系统,更是因为Go语言的接口。Go语言的编程哲学因为有接口而趋近完美。 Go 语言的接口不单单只是接口,下面我们通过一系列对比来进一步探索Go语言的接口特性。 其他语言的接口 Go语言的接口并不是其他语言(C++、Java、C#等)中所提供的接口概念。 在Go语言出现之前,接口主要作为不同组件之间的契约存在。...阅读全文

博文 2016-10-15 18:00:07 JoeySheng

Qcon2017实录|Service Mesh:下一代微服务

▲扫码报名活动 数人云11月Meetup报名开启,看中西方大神如何论道云原生与微服务!本文作者敖小剑老师将在本次Meetup上继续分享Service Mesh相关内容,欢迎报名~ 数人云之前给大家分享过敖小剑老师的《万字解读:Service Mesh服务网格新生代--Istio》,详细地阐述了发展及理念,在Qcon2017上,敖小剑老师又做了关于Service Mesh的演讲,以下是本次演讲的实录。 敖小剑/数人云资深架构师 十五年软件开发经验,微服务专家,专注于基础架构,Cloud Native拥护者,敏捷实践者。曾在亚信,爱立信,唯品会和ppmoney任职。 简单回顾一下过去三年微服务的发展历程。在过去三年当中,微服务成为我们的业界技术热点,我们看到大量的互联网公司都在做微服务架构的落地...阅读全文

博文 2017-10-20 11:26:57 数人云

Oracle数据库查询用 where in 查询的项超过1000条的解决方案

func GetWhereInValuesSql(column string, list []string, num int) string { valueSize := len(list) if valueSize == 0 { return "" } sql := "(" add := 0 if valueSize%num != 0 { add = 1 } batchSize := valueSize/num + add for i := 0; i < batchSize; i++ { if i > 0 { sql += ") or " } sql += column + " in (" for j := i * num; (j < (i+1)*num) && j < valueSize...阅读全文

博文 2020-04-10 10:45:35 qianyer

对golang标准库内容的一次简单总结

到目前已经大致复习了2/5的标准库包内容,对标准库内容进行一次简单总结,golang标准库主要由压缩归档、缓冲、字节、容器、上下文、加解密,数据库,字符串、编码、错误、日志、格式化IO、图形、IO、数学、网络、操作系统、反射、运行时、锁、原语、测试、模板、排序、类型转换、时间、字符编码组成。 也就是说,golang标准库的内容加上解决问题的思想就可以应付足够的业务问题...阅读全文

博文 2018-12-12 14:34:49 laijh

41.蛤蟆笔记go语言——通讯

41.蛤蟆笔记go语言——通讯 Go的I/O核心是接口io.Reader和io.Writer。 在Go中,从文件读取(或写入)是非常容易的。 io.Reader io.Reader接口对于Go语言来说非常重要。许多(如果不是全部的话)函数需要通过io.Reader读取一些数据作为输入。为了满足这个接口,只需要实现一个方法:Read(p []byte) (n int, err error)。写入则是(你可能已经猜到了)实现了Write方法的io.Writer。如果你让自己的程序或者包中的类型实现了io.Reader或者io.Writer接口,那么整个Go标准库都可以使用这个类型! 网络 所有网络相关的类型和函数可以在net包中找到。这其中最重要的函数是Dial。当Dial到远程系统,这个函数返...阅读全文

博文 2016-07-09 11:00:06 notbaron

链表以及golang介入式链表的实现

链表以及golang介入式链表的实现 今天看tcp/ip协议栈的代码时看到一个双向链表,链表吗?听过它的顶顶大名,知道它是由节点构成的,每个节点还有个指针指向下一个节点,但是从来没自己实现过一个,没有实践就不能深刻理解,遂有此文。 以下所有观点都是个人愚见,有不同建议或补充的的欢迎emial我aboutme 何为链表? 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。由于不必须按顺序存储,链表在插入的时候可以达到O(1)的复杂度,比另一种线性表顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间,而顺序表相应的时间复杂度分别是O(logn)和O(1)。 简单的说...阅读全文

博文 2018-01-16 13:44:31 sheepbao.github.io

golang bytes包解读

golang中的bytes标准库实现了对字节数组的各种操作,与strings标准库功能基本类似。 功能列表:1、字节切片 处理函数 (1)、基本处理函数(2)、字节切片比较函数(3)、前后缀检查函数(4)、字节切片位置索引函数(5)、分割函数(6)、大小写处理函数(7)、子字节切片处理函数2、Buffer 对象3、Reader 对象 基本处理函数Contains() :返回是否包含子切片func Contains(b, subslice []byte) bool 案例:执行结果:sf@SFdeMacBook-Pro  ~/Documents/project/src/test  go build strconv.gosf@SFdeMacBook-Pro  ~/Documents/proj...阅读全文

博文 2018-09-21 19:36:36 IT职场小白

golang通过oci访问oracle数据库

golang通过oci访问oracle数据库 首先需要下载 oracle driver for go that using database/sql $ go get github.com/mattn/go-oci8 然后下载Oracle Instant Client https://www.oracle.com/database/technologies/instant-client/downloads.html 因为github.com/mattn/go-oci8也是需要用到的。 解开后得到文件夹,例如:instantclient_19_3 golang访问程序 package main import ( "fmt" "log" "database/sql" _ "github.com/...阅读全文

博文 2019-06-06 13:32:38 CodingCode

Golang1.7.3使用标准库的AES加密解密不实用扩展协议

package main import ( "crypto/aes" "crypto/cipher" "fmt" ) type tobytes struct { cip cipher.Block pdgtext []byte } func main() { cip, _ := aes.NewCipher([]byte("1234567891234567")) enc := &tobytes{cip: cip, pdgtext: make([]byte, cip.BlockSize())} src := enc.Encrypt([]byte("czxichen")) dst := enc.Decrypt(src) fmt.Println(string(dst)) } //使用AES加密文本,加...阅读全文

博文 2016-11-24 13:00:01 fyxichen

GoFrame框架之gtime时间模块,支持自定义时间格式化语法

文章来源:http://gf.johng.cn/494387 通用时间管理模块,封装了常用的时间/日期相关的方法。并支持自定义的日期格式化语法,格式化语法类似PHP的date语法。 使用方式: import "gitee.com/johng/gf/g/os/gtime" 方法列表: godoc.org/github.com/johng-cn/gf/g/os/gtime 时间格式 gtime模块最大的特点是支持自定义的时间格式,参考PHP日期时间格式语法,以下是支持的时间格式语法列表: 时间对象 方法列表: type Time func New(t ...time.Time) *Time func NewFromStr(str string) *Time func NewFromStrForm...阅读全文

博文 2018-07-22 12:34:44 John

sspanel按月结算,修改go版代码【mysql api】

开头感谢sspanel的作者orvice大神!【转载请注明】 博主最近在搭建sspanel v3,中间坑确实挺多的,我回头开贴补充一下,ss服务器端我选择了orvice的shadowsocks-go mu版,因为作者是基于流量控制的机理,实际上奸商都是通过时间控制(233),所以我就寻思在作者的基础上加以修改,添加时间的限制。 注:此版本基于mysqlapi,webapi的修改方式令开贴 我在sspanel数据的user表中添加了两个字段:end_time int,到期日期(1970开始的时间戳);package_type int 套餐类型(无,月,三个月,半年,一年)。 具体可以根据自己实际需要情况修改。 首先,我们找到用户控制代码,在shadowsocks-go-mu\mu\mysql\...阅读全文

golang标准库中的encoding/json包

1、什么是JSON? 2、go标准库json包的内容? 3、开发中常用json操作? 一、什么是JSON? JSON简单的理解就是特殊格式的字符串,被设计用来传输和存储数据,和xml类似,但是在API和前后端分离数据交互更多是使用json,json不仅比XML简单,传输中更节省文本。网站中的ajax、后端api基本上是使用json编码后的数据。 二、go标准库json包的内容? 结构体 1)type InvalidUTF8Error func (e *InvalidUTF8Error) Error() string Go1.2之前版本,当试图编码一个包含非法utf-8序列的字符串时会返回错误。Go1.2及之后版本,编码器会强行将非法字节替换为unicode字符U+FFFD来使字符串合法。本错...阅读全文

博文 2018-12-12 19:34:43 laijh

golang中crypto/aes包

aes是对称加密算法,这篇博客只介绍怎么使用golang中怎么调用标准库已封装的算法实现,如果是要学习aes算法实现,移步百度 有两个操作:加密和解密 const BlockSize = 16 功能说明:AES算法块(加密数据块)的字节长度。 package main import ( "bytes" "crypto/aes" "crypto/cipher" "log" "fmt" ) // 填充数据 func padding(src []byte, blockSize int) []byte { padNum := blockSize - len(src) % blockSize pad := bytes.Repeat([]byte{byte(padNum)}, padNum) retur...阅读全文

Go net/http 超时指导 【已翻译100%】

当使用Go开发HTTP服务器或客户端时,超时造成的错误,常常是简单而又微妙的:很多因素都可能产生超时。一个错误可以很长一段时间没有结果,直到网络故障,进程被挂起。 HTTP是一个复杂的多层协议,所以在超时这个问题上,并没有一个通用的解决方案。想一想:流媒体终端、JSON API、Comet终端。事实上,默认值往往不是你想要的。(译注:没理解Comet endpoint是什么意思。原文给出的链接是维基百科上天文意义的彗星。译者怀疑是支持BT协议的BitComet) 在这篇文章中,我将分别介绍,在那些阶段,你可能需要设置一个超时。而且在服务器和客户端上,也将采用不同的方式来处理超时。(译者:本文主要是基于Go标准库进行介绍的。Go标准库在超时定义上提供了很高的灵活性。译者在刚开始用Go开发时,很...阅读全文

博文 2017-06-06 12:34:04 caotj72,caotj72山野痞夫,山野痞夫sheepbao,sheepbaoimqipanimqipan

golang实现原始数据库过滤语法

golang gin 数据库过滤语法 func (s APIGetAlarmListsInputs) collectFilters() string { tmp := []string{} if s.StartTime != 0 { tmp = append(tmp, fmt.Sprintf("timestamp >= FROM_UNIXTIME(%v)", s.StartTime)) } if s.EndTime != 0 { tmp = append(tmp, fmt.Sprintf("timestamp <= FROM_UNIXTIME(%v)", s.EndTime)) } if s.Priority != -1 { tmp = append(tmp, fmt.Sprintf("pr...阅读全文

博文 2018-09-27 15:34:51 斯嘎啦

13.Go语言标准库之time包

1.time包 time包提供了时间的系那是和测量用的函数。日历的计算采用的是公历。 1.1时间类型 time.Time类型表示时间。我们可以通过time.Now()函数获取当前的事件对象,然后获取时间对象的年月日时分秒等信息。 package main import ( "fmt" "time" ) func main() { now := time.Now() //获取当前时间 fmt.Printf("current time:%v\n", now) year := now.Year() //年 month := now.Month() //月 day := now.Day() //日 hour := now.Hour() //小时 minute := now.Minute() //分钟...阅读全文

博文 2020-02-07 04:33:10 DevOperater

Go语言知识库

CSDN最近搞了一个主要编程语言图谱+知识库,不错 Go语言的,请点这里 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

    ').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $number...阅读全文

博文 2016-10-25 04:00:01 frank_zhu_bj

golang讲解(go语言)标准库分析之strings(3)

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; 今天我们继续哈,争取我们把strings包这个东西给弄完了,这已经也有两天没有好好更新了,所以这两天更新的比较多补充前两天的 (1)func Title(s string) string这个函数作用很简单,就是把输入的字符串首字母大写,参数是字符串返回的是字符串 import ( "fmt" "strings" ) func main() { fmt.Println(strings.Title("hello word widuu write")) } (2)func ToLower(s string) string这个函数是把字符串转换成小写,当然都是副本哦 import ( "fmt" "s...阅读全文

博文 2017-02-09 18:40:48 widuu

Go语言知识库

CSDN最近搞了一个主要编程语言图谱+知识库,不错 Go语言的,请点这里 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

    ').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $number...阅读全文

博文 2016-09-08 07:00:08 frank_zhu_bj

golang Interface 泛型编程

严格来说,在 Golang 中并不支持泛型编程。在 C++ 等高级语言中使用泛型编程非常的简单,所以泛型编程一直是 Golang 诟病最多的地方。但是使用 interface 我们可以实现泛型编程,我这里简单说一下,具体可以参考我前面给出来的那篇文章。比如我们现在要写一个泛型算法,形参定义采用 interface 就可以了,以标准库的 sort 为例。 package sort // A type, typically a collection, that satisfies sort.Interface can be // sorted by the routines in this package. The methods require that the // elements of ...阅读全文

博文 2019-06-18 23:32:46 jaydenZou1228

gocrawl类库解析

最近打算介绍go语言编写的开源类库架构分析,自己最开始使用go语言是做爬虫的,采用的是gocrawl, gocrawl是一个使用go语言编写的开源爬虫类库,今天来分析下gocrawl的实现。 ## 示例代码 ``` package gocrawl import ( "github.com/PuerkitoBio/goquery" "net/http" "regexp" "time" ) // Only enqueue the root and paths beginning with an "a" var rxOk = regexp.MustCompile(`http://duckduckgo\.com(/a.*)?$`) // DefaultExtender是gocrawl提供的一些默认实...阅读全文

博文 2017-02-09 20:01:19 shanks