作者:AlbertWen
添加时间:2017-10-29 09:44:39
修改时间:2026-06-27 06:35:21
分类:
21.Go语言编程
编辑
一、基本类型
清晰完备的预定义基础类型,使得开发跨平台应用时无须过多考虑符合和长度差异。
| 类型 |
长度 |
默认值 |
说明 |
| bool |
1 |
false |
|
| byte |
1 |
0 |
uint8 |
| int, uint |
4, 8 |
0 |
默认整数类型,依据目标平台,32 或 64 位 |
| int8, uint8 |
1 |
0 |
-128 ~ 127,0 ~ 125 |
| int16, uint16 |
2 |
0 |
-32,768 ~ 32,767,0 ~ 65,535 |
| int32, uint32 |
4 |
0 |
-21亿 ~ 21亿,0 ~ 42亿 |
| int64, uint64 |
8 |
0 |
|
| float32 |
4 |
0.0 |
|
| float64 |
8 |
0.0 |
默认浮点数类型 |
作者:AlbertWen
添加时间:2017-10-29 10:06:15
修改时间:2026-07-05 02:58:03
分类:
21.Go语言编程
编辑
命令 go install 用于编译并安装指定的代码包及它们的依赖包。当指定的代码包的依赖包还没有被编译和安装时,该命令会先去处理依赖包。与 go build 命令一样,传给 go install 命令的代码包参数应该以导入路径的形式提供。并且,go build 命令的绝大多数标记也都可以用于 go install 命令。实际上,go install 命令只比 go build 命令多做了一件事,即:安装编译后的结果文件到指定目录。
作者:AlbertWen
添加时间:2017-10-27 12:54:37
修改时间:2026-06-26 03:27:40
分类:
21.Go语言编程
编辑
goroutine
goroutine是Go并行设计的核心。goroutine说到底其实就是线程,但是它比线程更小,十几个goroutine可能体现在底层就是五六个线程,Go语言内部帮你实现了这些goroutine之间的内存共享。执行goroutine只需极少的栈内存(大概是4~5KB),当然会根据相应的数据伸缩。也正因为如此,可同时运行成千上万个并发任务。goroutine比thread更易用、更高效、更轻便。
goroutine是通过Go的runtime管理的一个线程管理器。goroutine通过go关键字实现了,其实就是一个普通的函数。
go hello(a, b, c)
作者:AlbertWen
添加时间:2017-10-29 20:29:19
修改时间:2026-06-30 01:43:00
分类:
21.Go语言编程
编辑
sync.Once.Do(f func()) 是一个非常有意思的东西,能保证 once 只执行一次,无论你是否更换 once.Do(xx) 这里的方法,这个 sync.Once块 只会执行一次。
作者:AlbertWen
添加时间:2017-10-29 09:46:48
修改时间:2026-07-07 16:06:33
分类:
21.Go语言编程
编辑
作者:AlbertWen
添加时间:2017-10-29 20:29:54
修改时间:2026-06-30 14:24:14
分类:
21.Go语言编程
编辑
Go 还有一些特有的流程控制语句,其中一个就是 defer 语句。该语句用于延迟调用指定的函数,它只能出现在函数的内部,由 defer 关键字以及针对某个函数的调用表达式组成。这里被调用的函数称为 延迟函数。一个简单的例子如下:
func outerFunc() {
defer fmt.Println("函数执行结束前一刻才会被打印")
fmt.Println("第一个被打印")
}
作者:AlbertWen
添加时间:2017-10-27 13:06:47
修改时间:2026-07-03 00:37:18
分类:
21.Go语言编程
编辑
一、数组
与其他大多数语言类似,Go语言的数组也是一个元素类型相同的定长的序列。
(1)数组的创建
数组有 3 种创建方式:
1) [length]Type
2) [length]Type{value1, value2, ... , valueN}
作者:AlbertWen
添加时间:2017-10-29 20:41:24
修改时间:2026-07-06 12:35:58
分类:
21.Go语言编程
编辑
项目地址:https://github.com/fsnotify/fsnotify
fsnotify 能监控指定文件夹内 文件的修改情况,如 文件的 增加、删除、修改、重命名等操作。
作者:AlbertWen
添加时间:2017-10-29 10:14:29
修改时间:2026-07-04 05:11:50
分类:
21.Go语言编程
编辑
go test 命令用于对 Go 语言编写的程序进行测试。这种测试是以 代码包 为单位的。当然,这还需要测试源码文件的帮助。关于怎样编写并写好 Go 程序测试代码,我们会在本章的第二节加以详述。在这里,我们只讨论怎样使用命令启动测试。
go test 命令会自动测试每一个指定的 代码包。当然,前提是指定的代码包中存在测试源码文件。测试源码文件是名称以“_test.go”为后缀的、内含若干测试函数的源码文件。测试函数一般是以“Test”为名称前缀并有一个类型为“testing.T”的参数声明的函数.
作者:AlbertWen
添加时间:2018-07-18 09:52:18
修改时间:2026-07-06 02:05:42
分类:
21.Go语言编程
编辑
Tao同时也是我用Go语言开发的一个异步的TCP服务器框架(TCP Asynchronous Go server FramewOrk),秉承Go语言“Less is more”的极简主义哲学,它能穿透一切表象,带你一窥网络编程的世界,让你从此彻底摆脱只会写“socket-bind-listen-accept”的窘境。本文将简单讨论一下这个框架的设计思路以及自己的一些思考。