最新 | 最热门 | 最高评价

+0  深入Go语言 - 8

Tag: Go
鸟窝 发于 2016年07月25日 09:15 | 点击: 732 | 展开摘要
本章介绍 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 | 点击: 475 | 展开摘要
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 | 点击: 569 | 展开摘要
图像识别(image recognition)是现在的热门技术。

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

这是怎么做到的?

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

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

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

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

+0  深入Go语言 - 3

Tag: Go
鸟窝 发于 2016年07月21日 09:53 | 点击: 820 | 展开摘要
本文介绍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 | 点击: 409 | 展开摘要
本章重点介绍Go语言中的反射。
包reflect可以实现运行时的反射,允许程序操纵对象的值和类型。
典型地,你可以获取 interface{}的动态类型以及的它的值和方法。

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

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

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

Type

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

+0  深入Go语言 - 12

Tag: Go
鸟窝 发于 2016年07月09日 16:20 | 点击: 375 | 展开摘要
本章介绍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 | 点击: 695 | 展开摘要
本章重点介绍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 | 点击: 555 | 展开摘要
本文介绍 类型转换(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 | 点击: 409 | 展开摘要
本章介绍Go语言的其它部分,算是Go语言规范的深入学习的收尾工作。

内建函数

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

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

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

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

+0  深入Go语言 - 7

Tag: Go
鸟窝 发于 2016年06月28日 13:27 | 点击: 550 | 展开摘要
本章介绍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

+0  深入Go语言 - 5

Tag: Go
鸟窝 发于 2016年06月21日 15:52 | 点击: 391 | 展开摘要
本文介绍Go语言的表达式。

表达式代表一个值的计算, 计算通过运算符和函数应用在操作数上(operand)。

操作数代表表达式中的基本值。它可以字面量,标识符。 标识符表示常量、变量、函数、方法表达式、或者一个括号表达式。

空标识符“_”只能出现在赋值语句的左边。

包代码块中定义的标识符通过 package.identifier访问。

表达式的形式有多种,可以参看官方文档: Primary expressions。

以下都是合法的表达式:

1
2
3
4
5
6

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

+0  深入Go语言 - 4

Tag: Go
鸟窝 发于 2016年06月20日 15:56 | 点击: 364 | 展开摘要
本文介绍Go的声明和作用域。

声明用于常量、变量、类型、函数、标签和包。

每个非空标识符(identifier)必须声明。同一代码块中标识符只能声明一次。标识符不能同时声明在文件代码块和包代码块中。

空标识符为下划线 "_",它可以做为匿名占位符。

一个声明的标识符的作用域总结如下:

预声明的标识符的作用域是全局代码块如int、true等

顶层的(函数之外)的标识符, 用来声明常量、类型、变量或者函数(非方法), 这些标识符的作用域是包代码块

查看全文: http://www.udpwork.com/item/15601.html
|<<<3456789>>>| 一共50页, 594条记录