摘要:
godoc 工具在显示自定义包中的注释也有很好的效果:注释必须以 // 开始并无空行放在声明(包,类型,函数)前。godoc 会为每个文件生成一系列的网页。 例如: 在 doc_examples 目录下我们有第 11.7 节中的用来排序的 go 文件,文件中有一些注释(文件需要未编译) 命令行下进入 阅读全文
posted @ 2022-02-04 14:19
Galaxies2580
阅读(31)
评论(0)
推荐(0)
摘要:
当开始一个新项目或增加新的功能到现有的项目,你可以通过在应用程序中使用已经存在的库来节省开发时间。为了做到这一点,你必须理解库的 API(应用编程接口),那就是:库中有哪些方法可以调用,如何调用。你可能没有这个库的源代码,但作者肯定有记载的 API 以及详细介绍了如何使用它。 作为一个例子,我们将使 阅读全文
posted @ 2022-02-04 14:18
Galaxies2580
阅读(120)
评论(0)
推荐(0)
摘要:
为了示范,我们创建了一个名为 uc 的简单包,它含有一个 UpperCase 函数将字符串的所有字母转换为大写。当然这并不值得创建一个自己包,同样的功能已被包含在 strings 包里,但是同样的技术也可以应用在更复杂的包中。 自定义包的目录结构 下面的结构给了你一个好的示范: /home/user 阅读全文
posted @ 2022-02-04 14:18
Galaxies2580
阅读(67)
评论(0)
推荐(0)
摘要:
安装到 GitHub 以上的方式对于本地包来说是可以的,但是我们如何打包代码到开发者圈子呢?那么我们需要一个云端的源码的版本控制系统,比如著名的 Git。 在 Linux 和 OS X 的机器上 Git 是默认安装的,在 Windows 上你必须先自行安装,参见 GitHub 帮助页面。 这里将通过 阅读全文
posted @ 2022-02-04 14:17
Galaxies2580
阅读(210)
评论(0)
推荐(0)
摘要:
go install 是 Go 中自动包安装工具:如需要将包安装到本地它会从远端仓库下载包:检出、编译和安装一气呵成。 在包安装前的先决条件是要自动处理包自身依赖关系的安装。被依赖的包也会安装到子目录下,但是没有文档和示例:可以到网上浏览。 go install 使用了 GOPATH 变量 。 远端 阅读全文
posted @ 2022-02-04 14:16
Galaxies2580
阅读(306)
评论(0)
推荐(0)
摘要:
在一些复杂的程序中,通常通过不同线程执行不同应用来实现程序的并发。当不同线程要使用同一个变量时,经常会出现一个问题:无法预知变量被不同线程修改的顺序!(这通常被称为资源竞争,指不同线程对同一变量使用的竞争) 显然这无法让人容忍,那我们该如何解决这个问题呢? 经典的做法是一次只能让一个线程对共享变量进 阅读全文
posted @ 2022-02-04 14:16
Galaxies2580
阅读(17)
评论(0)
推荐(0)
摘要:
像 fmt、os 等这样具有常用功能的内置包在 Go 语言中有 150 个以上,它们被称为标准库,大部分 (一些底层的除外) 内置于 Go 本身。完整列表可以在 Go Walker 查看。 在贯穿本书的例子和练习中,我们都是用标准库的包。可以通过查阅第 350 页包中的内容快速找到相关的包的实例。这 阅读全文
posted @ 2022-02-04 14:15
Galaxies2580
阅读(195)
评论(0)
推荐(0)
摘要:
我们知道有些时候通过编程的方式去进行计算是不精确的。如果你使用 Go 语言中的 float64 类型进行浮点运算,返回结果将精确到 15 位,足以满足大多数的任务。当对超出 int64 或者 uint64 类型这样的大数进行计算时,如果对精度没有要求,float32 或者 float64 可以胜任, 阅读全文
posted @ 2022-02-04 14:15
Galaxies2580
阅读(39)
评论(0)
推荐(0)
摘要:
现在我们知道如何使用 Go 以及它的标准库了,但是 Go 的生态要比这大的多。当着手自己的 Go 项目时,最好先查找下是否有些存在的第三方的包或者项目能不能使用。大多数可以通过 go install 来进行安装。 Go Walker 支持根据包名在海量数据中查询。 目前已经有许多非常好的外部库,如: 阅读全文
posted @ 2022-02-04 14:14
Galaxies2580
阅读(39)
评论(0)
推荐(0)
摘要:
在下面的程序里,我们将在字符串中对正则表达式进行匹配。 如果是简单模式,使用 Match 方法便可: ok, _ := regexp.Match(pat, []byte(searchIn)) 变量 ok 将返回 true 或者 false, 我们也可以使用 MatchString: ok, _ := 阅读全文
posted @ 2022-02-04 14:14
Galaxies2580
阅读(36)
评论(0)
推荐(0)