最新 | 最热门 | 最高评价

+0  Go语言中的io.Reader和io.Writer以及它们的实现

Tag: Go
鸟窝 发于 2016年08月29日 17:04 | 点击: 450 | 展开摘要
在使用Go语言的过程中,无论你是实现web应用程序,还是控制台输入输出,又或者是网络操作,不可避免的会遇到IO操作,使用到io.Reader和io.Writer接口。也也许对这两个接口和相关的一些接口很熟悉了,但是你脑海里确很难形成一个对io接口的继承关系整天的概貌,原因在于godoc缺省并没有像javadoc一样显示官方库继承关系,这导致了我们对io接口的继承关系记忆不深,在使用的时候还经常需要翻文档加深记忆。本文试图梳理清楚Go io接口的继承关系,提供一个io接口的全貌

查看全文: http://www.udpwork.com/item/15769.html

+0  [译]Go net/http 超时机制完全手册

Tag: Go
鸟窝 发于 2016年07月25日 09:22 | 点击: 1300 | 展开摘要
英文原始出处: The complete guide to Go net/http timeouts, 作者: Filippo Valsorda

当用Go写HTTP的服务器和客户端的时候,超时处理总是最易犯错和最微妙的地方之一。错误可能来自很多地方,一个错误可能等待很长时间没有结果,直到网络故障或者进程挂起。

HTTP是一个复杂的、多阶段(multi-stage)协议,所以没有一个放之四海而皆准的超时解决方案,比如一个流服务、一个JSON API和一个Comet服务对超时

查看全文: http://www.udpwork.com/item/15628.html

+0  深入Go语言 - 8

Tag: Go
鸟窝 发于 2016年07月25日 09:15 | 点击: 698 | 展开摘要
本章介绍 go语句、goroutine调度。

go 语句

go语句用来产生一个新的goroutine,并执行一个函数,它的使用非常简单,就是在函数调用或者方法调用的前面加上go关键字即可。

函数可以是已有函数、匿名函数、方法等,注意匿名方法(方法字面量)不要忘记调用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

func foo(i int) int {
return i * i
}

……

go foo(10)
go func()

查看全文: http://www.udpwork.com/item/15620.html

+0  高性能的消息框架 go-disruptor

Tag: disruptor | Go
鸟窝 发于 2016年07月22日 17:42 | 点击: 453 | 展开摘要
Java程序员都知道,Disruptor是一个高性能的线程间通信的框架,即在同一个JVM进程中的多线程间消息传递,由LMAX开发。

Disruptor性能是如此之高,LMAX利用它可以处理每秒6百万订单,用1微秒的延迟获得吞吐量为100K+。那么Go语言生态圈中有没有这样的库呢?

go-disruptor就是对Java Disruptor的移植,它也提供了与Java Disruptor类似的API设计,使用起来也算不上麻烦。

至于性能呢,下面就会介绍,这也是本文的重点。

查看全文: http://www.udpwork.com/item/15692.html

+0  如何识别图像边缘?

Tag: Algorithm
阮一峰 发于 2016年07月22日 07:39 | 点击: 549 | 展开摘要
图像识别(image recognition)是现在的热门技术。

文字识别、车牌识别、人脸识别都是它的应用。但是,这些都算初级应用,现在的技术已经发展到了这样一种地步:计算机可以识别出,这是一张狗的照片,那是一张猫的照片。

这是怎么做到的?

让我们从人眼说起,学者发现,人的视觉细胞对物体的边缘特别敏感。也就是说,我们先看到物体的轮廓,然后才判断这到底是什么东西。

计算机科学家受到启发,第一步也是先识别图像的边缘。

加州大学的学生 Adit Deshpande 写了一

查看全文: http://www.udpwork.com/item/15689.html

+0  深入Go语言 - 3

Tag: Go
鸟窝 发于 2016年07月21日 09:53 | 点击: 789 | 展开摘要
本文介绍Go的类型系统,以及类型的比较和语句块。

Go语言包含11种类型,你应该很熟悉了,下面让我们再深入的了解一下每种类型的细节。

布尔类型

数值类型

字符串类型

数组类型

Slice类型

Struct类型

指针类型

函数类型

接口类型

Map类型

Channel类型

bool、数值型类型、rune、字符串都是预定义的类型:

1
2
3

bool byte complex64 complex128 error float32 float64
i

查看全文: http://www.udpwork.com/item/15575.html

+0  深入Go语言 - 13

Tag: Go
鸟窝 发于 2016年07月11日 14:46 | 点击: 383 | 展开摘要
本章重点介绍Go语言中的反射。
包reflect可以实现运行时的反射,允许程序操纵对象的值和类型。
典型地,你可以获取 interface{}的动态类型以及的它的值和方法。

Go是静态类型的语言,每一个对象在声明和初始化的时候都已经有一个确定值,即使是声明为接口类型的变量,它的静态类型也已经确定,即使任何包含这个接口方法集的类型的对象都可以赋值给它。

我们可以在运行时获取对象的动态类型和值。

类型Type和值Value是我们使用发射库的主要用的两个概念。

Type

查看全文: http://www.udpwork.com/item/15666.html

+0  深入Go语言 - 12

Tag: Go
鸟窝 发于 2016年07月09日 16:20 | 点击: 346 | 展开摘要
本章介绍Go语言的代码的测试、性能测试以及示例的写法。

测试

虽然也有一些第三方的基于某种概念开发的测试库,但是我觉得最好用还是官方的测试库: testing。

常规地,我们会把测试代码的文件和正式的代码文件放在同一个文件夹下,但是包含测试代码的文件应该以"_test.go"结尾。

测试文件的包名可以和正式文件的包名相同,也可以不同。比如正式的报名为abc,测试的报名就可以是abc_test,但是不能是其它的,比如xyz。
这两种风格官方库中都有。

查看全文: http://www.udpwork.com/item/15658.html

+0  深入Go语言 - 11

Tag: Go
鸟窝 发于 2016年07月09日 16:20 | 点击: 608 | 展开摘要
本章重点介绍Go程序的调试和性能监控。

GDB

当你在Linux、macOS、FreeBSD、NetBSD环境中使用gc工具链编译和链接你的程序的时候,生成的二进制文件中包含 DWARFv3调试信息, 最新的GDB(>7.1)可以用它们来调试程序。

gc工具链的名字来自Go前端编译器(compiler frontend), cmd/gc,以区分gccgo工具链。当人们谈论Go编译器的时候,通常所指就是gc工具链。

gc工具链包含一个Go编译器、一个C编译器、一个

查看全文: http://www.udpwork.com/item/15641.html

+0  深入Go语言 - 6

Tag: Go
鸟窝 发于 2016年07月06日 13:31 | 点击: 526 | 展开摘要
本文介绍 类型转换(Conversion)、类型断言(type assertion) 和类型切换(type switch)。

这三个概念类似但是又完全不同。

类型转换 Conversion

将一个值x转换成特定类型T,格式为 T(x),非常的简单,类型加小括号即可。

如果类型T以 *、<-、func(不带结果列表),未避免造成歧义,需要将类型括号包裹起来: (T)(x):

1
2
3
4
5
6
7
8

*Point(p) // same as

查看全文: http://www.udpwork.com/item/15607.html

+0  深入Go语言 - 9

Tag: Go
鸟窝 发于 2016年06月30日 10:36 | 点击: 390 | 展开摘要
本章介绍Go语言的其它部分,算是Go语言规范的深入学习的收尾工作。

内建函数

前面几章我们已经认识了几个内建的函数,这里我们将所有的内建函数罗列一下。

如果你查看它们的定义的话,你可以访问builtin/builtin.go,但这些内建的函数只有声明,没有方法体,它们不是标准的Go类型,你不能把它们作为函数值进行参数传递,只能出现在调用表达式中。事实上这些内建类型并不真的在builtin包中,只是为了生成文档的需要。

你可以在任意的包中调用这些内建函数,不必引入特定的

查看全文: http://www.udpwork.com/item/15622.html

+0  深入Go语言 - 7

Tag: Go
鸟窝 发于 2016年06月28日 13:27 | 点击: 528 | 展开摘要
本章介绍Go语言的各种语句。

Go语言的语法定义罗列了所有的语句类型:

Statement =
Declaration | LabeledStmt | SimpleStmt |
GoStmt | ReturnStmt | BreakStmt | ContinueStmt | GotoStmt |
FallthroughStmt | Block | IfStmt | SwitchStmt | SelectStmt | ForStmt |
De

查看全文: http://www.udpwork.com/item/15606.html
|<<<2345678>>>| 一共49页, 584条记录